{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "code_folding": []
   },
   "outputs": [],
   "source": [
    "# 引入常用库\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import scipy.stats as st\n",
    "import datetime as dt\n",
    "from dateutil.parser import parse\n",
    "import itertools # 迭代器工具\n",
    "\n",
    "\n",
    "from alphalens.utils import print_table\n",
    "from tqdm import *\n",
    "#import pysnooper # debug\n",
    "import pickle\n",
    "import json\n",
    "\n",
    "from jqdata import *\n",
    "from jqfactor import *\n",
    "import talib # 技术分析\n",
    "\n",
    "# 使用ts\n",
    "import tushare as ts\n",
    "\n",
    "# 画图\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.dates as mdate\n",
    "import seaborn as sns\n",
    "# 设置字体 用来正常显示中文标签\n",
    "mpl.rcParams['font.sans-serif'] = ['SimHei']\n",
    "\n",
    "# 用来正常显示负号\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "# 图表主题\n",
    "plt.style.use('ggplot')\n",
    "\n",
    "\n",
    "\n",
    "# 请根据自己的情况填写ts的token\n",
    "setting = json.load(open('../../config.json'))\n",
    "\n",
    "######################################### tuhsare自动延迟下载 ####################################################\n",
    "# tuhsare自动延迟下载，防止频繁调取数据是报错\n",
    "import time\n",
    "import logging\n",
    "import logging.handlers\n",
    "\n",
    "\n",
    "class TuShare:\n",
    "    \"\"\"tushare服务接口自动重试封装类，能够在接口超时情况下自动等待1秒然后再次发起请求，\n",
    "    无限次重试下去，直到返回结果或者达到最大重试次数。\n",
    "    \"\"\"\n",
    "\n",
    "    def __init__(self, token, logger=None, max_retry=0):\n",
    "        \"\"\"构造函数，token：tushare的token；logger：日志对象，可以不传；\n",
    "        max_retry：最大重试次数，默认为0意为无限重试，建议用10以上100以内。\"\"\"\n",
    "        self.token = token\n",
    "        if not logger:\n",
    "            logger = logging.getLogger('TuShare')\n",
    "            # CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET\n",
    "            logger.setLevel(logging.DEBUG)\n",
    "            formatter = logging.Formatter(\n",
    "                '%(asctime)s %(name)s %(pathname)s:%(lineno)d %(funcName)s %(levelname)s %(message)s'\n",
    "            )\n",
    "            handler = logging.StreamHandler()\n",
    "            handler.setFormatter(formatter)\n",
    "            handler.setLevel(logging.DEBUG)\n",
    "            logger.addHandler(handler)\n",
    "        self.logger = logger\n",
    "        self.max_retry = max_retry\n",
    "        ts.set_token(token)\n",
    "        self.pro = ts.pro_api()\n",
    "\n",
    "    def __getattr__(self, name):\n",
    "        def wrapper(*args, **kwargs):\n",
    "            i = 0\n",
    "            while True:\n",
    "                try:\n",
    "                    if name == 'pro_bar':\n",
    "                        m = getattr(ts, name, None)\n",
    "                    else:\n",
    "                        m = getattr(self.pro, name, None)\n",
    "                    if m is None:\n",
    "                        self.logger.error('Attribute %s does not exist.', name)\n",
    "                        return None\n",
    "                    else:\n",
    "                        return m(*args, **kwargs)\n",
    "                except (Exception):\n",
    "                    if self.max_retry > 0 and i >= self.max_retry:\n",
    "                        raise\n",
    "                    self.logger.exception(\n",
    "                        'TuShare exec %s failed, args:%s, kwargs:%s, try again.',\n",
    "                        name, args, kwargs)\n",
    "                    time.sleep(1)\n",
    "                i += 1\n",
    "\n",
    "        return wrapper\n",
    "\n",
    "my_pro = TuShare(setting['token'], max_retry=60) # 初始化ts\n",
    "\n",
    "######################################### 公用 ####################################################\n",
    "# 绕过查询限制\n",
    "def distributed_query(query_func_name,\n",
    "                      symbol,\n",
    "                      start_date,\n",
    "                      end_date,\n",
    "                      fields,\n",
    "                      limit=3000):\n",
    "\n",
    "    n_symbols = len(symbol.split(','))\n",
    "    dates = query_trade_dates(start_date, end_date)\n",
    "    n_days = len(dates)\n",
    "\n",
    "    if n_symbols * n_days > limit:\n",
    "        n = limit // n_symbols\n",
    "\n",
    "        df_list = []\n",
    "        i = 0\n",
    "        pos1, pos2 = n * i, n * (i + 1) - 1\n",
    "        \n",
    "        while pos2 < n_days:\n",
    "            \n",
    "            df = query_func_name(\n",
    "                ts_code=symbol,\n",
    "                start_date=dates[pos1],\n",
    "                end_date=dates[pos2],\n",
    "                fields=fields)\n",
    "            df_list.append(df)\n",
    "            i += 1\n",
    "            pos1, pos2 = n * i, n * (i + 1) - 1\n",
    "        if pos1 < n_days:\n",
    "            df = query_func_name(\n",
    "                ts_code=symbol,\n",
    "                start_date=dates[pos1],\n",
    "                end_date=dates[-1],\n",
    "                fields=fields)\n",
    "            df_list.append(df)\n",
    "        df = pd.concat(df_list, axis=0)\n",
    "    else:\n",
    "        df = query_func_name(\n",
    "            ts_code=symbol,\n",
    "            start_date=start_date,\n",
    "            end_date=end_date,\n",
    "            fields=fields)\n",
    "    return df\n",
    "\n",
    "# ts的日历需要处理一下才会返回成交日列表\n",
    "## 减少ts调用 改用jq的数据....\n",
    "def query_trade_dates(start_date: str, end_date: str) -> list:\n",
    "    \n",
    "    start_date = parse(start_date).strftime('%Y-%m-%d')\n",
    "    end_date = parse(end_date).strftime('%Y-%m-%d')\n",
    "    #df = my_pro.trade_cal(exchange='SSE', start_date=start_date, end_date=end_date)\n",
    "    #dates = df.query('is_open==1')['cal_date'].values.tolist()\n",
    "    \n",
    "    return get_trade_days(start_date,end_date).tolist()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    ">回测的本质是将某种可被精确刻画的投资策略，在历史中进行推演和复现， 通过该策略在历史上的表现，推测它在未来的表现，进而对多组策略加以取舍，形成最终的投资决策。\n",
    ">\n",
    ">**如果投资策略在历史回测表现好，仅仅源于捕捉到个别股票、个别因子或者个别时间段的极端收益，相当于捕捉到数据中的噪音，那么该策略在未来表现很可能出现退化。**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# <font color=Red>回测过拟合概率 PBO的定义</font>\n",
    "\n",
    "PBO（Probability of Backtest Overfitting）是定量衡量回测过拟合风险的指标，计算方式 基于 Bailey、Borwein、López de Prado 和 Zhu 在 2017 年提出的组合对称交叉验证 （Combinatorially-Symmetric Cross-Validation，简记为 CSCV）框架。假设以夏普比率\n",
    "（Sharpe Ratio，简记为 SR）作为框架中的策略评价指标，那么 PBO 可按如下方式定义：\n",
    "\n",
    "$PBO=P[SR_{n*}<ME(SR)]$\n",
    "\n",
    "*其中，SR表示\"测试集\"各组策略的夏普比率，$n*$表示\"训练集\"表现最好（夏普比率最高）的那组策略，ME表示中位数。注意到这里的\"交叉验证\"、\"训练集\"和\"测试集\"并不完全等价于机器学习传统意义上的相关概念，但是有异曲同工之处*\n",
    "\n",
    "上述定义的含义是：“训练集”夏普比率最高的策略$n*$，在“测试集”的夏普比率也应该 较高，表现至少应优于一半的策略。如果策略$n*$的测试集夏普比率排名在后 50%，那么 很有可能属于回测过拟合。回测过拟合的概率，即为最优策略 n*的测试集夏普比率排名位 于后 50%的概率。\n",
    "\n",
    "PBO的定义引申出新的问题：对于量化策略，尤其是非机器学习策略，通常不存在“训 练集”和“测试集”的概念。PBO 是如何根据回测结果划分“训练集”和“测试集”呢？下面我们展示 PBO 的计算步骤：\n",
    "\n",
    "1. 构建矩阵$𝑀_{𝑇×𝑁}$；每列分别表示第N组策略下 T期的收益率序列。 \n",
    "\n",
    "2. 按行切割矩阵$𝑀_{𝑇×𝑁}$，得到子矩阵$𝑀_𝑡$, 𝑡 = 1,2, …, 𝑆；需要注意的是，这里 S必须为偶数，此时每个子矩阵维度相同，均为$\\frac{T}{S}*N$\n",
    "\n",
    "3. 从S个子矩阵中任意选出$\\frac{S}{2}$个为一组，用$C_s$表示所有可能的组合;根据组合原理,这样的组合共有$C^{\\frac{S}{2}}_S$种。\n",
    "\n",
    "4. 对于$𝐶_𝑆$中的任意一组 c，进行如下操作：\n",
    "\n",
    "    a. 构建训练集𝐽：将c中的$\\frac{S}{2}$个子矩阵$M_𝑡$按行拼接起来。\n",
    "    \n",
    "    b. 构建测试集$\\overline{J}$：即J的补集，将不包含在 c 中的子矩阵$𝑀_𝑡$按行拼接起来。\n",
    "    \n",
    "    c. 对于训练集𝐽，计算每列的夏普比率，得到夏普比率最高的策略策略$𝑛∗$。\n",
    "    \n",
    "    d. 对于测试集$\\overline{J}$,得到策略$n*$在测试集夏普比率$SR_{n*}$的绝对排名$Rank(n*)$和相对排名$\\omega$(均为降序排列);通常取$\\omega=\\frac{Rank(n*)}{N+1},\\omega\\in(0,1)$\n",
    "    \n",
    "    e. 定义对数几率$\\lambda=log(\\frac{\\omega}{1-\\omega})$:$\\lambda$随$\\omega$增大而增大，当$\\omega=0.5$时,$\\lambda=0$;当$\\omega$接近1时,$\\lambda$取无穷大。\n",
    "\n",
    "5. 根据第4步,对于$C_S$中的任意一组c,可计算$\\lambda$。对全部c进行遍历,最终$\\lambda_m,m=1,2,3,\\dots,C^{S/2}_S$.进一步可得到$\\lambda$的经验分布$f(\\lambda)$,PBO是$f(\\lambda)$在区间$(-\\infty,0]$上的定积分:\n",
    "\n",
    "$$PBO=\\int^{0}{-\\infty}f(\\lambda)d\\lambda$$\n",
    "\n",
    "需要说明的是,上述定积分的前提假设是S取无穷大,此时相对排名$\\omega$和对数几率$\\lambda$为离散变量。根据离散变量经验分布的定义:\n",
    "\n",
    "$$f(\\lambda)=\\sum^{n}_{i=1}I_{\\lambda_i<\\lambda}$$\n",
    "\n",
    "有如下推导：\n",
    "\n",
    "$$PB=\\int^{0}_{-\\infty}f(\\lambda)d\\lambda=\\frac{\\#\\{\\lambda_m<0\\}}{C^{S/2}_{S}}=\\frac{\\#\\{\\omega_m<0.5\\}}{C^{S/2}_{S}}$$\n",
    "\n",
    "其中$\\#\\{\\lambda_m>0\\}$表示$C^{S/2}_{S}$中大于0的个数,$\\#\\{\\lambda_m>0。5\\}$则表示$C^{S/2}_{S}$各$\\omega_m$中大于0.5的个数。当划分完“训练集”和“测试集”后,**只需要计算相对排名$\\omega$，随后统计相对排名$\\omega$中大于0.5的个数即可。**\n",
    "\n",
    "\n",
    "PBO 的计算框架包含以下优点： \n",
    "1. 保证“训练集”和“测试集”样本量相同，使得夏普比率具有可比性； \n",
    "2. 各组策略关系对等，排除其它影响夏普比率因素的干扰； \n",
    "3. 划分数据时将回测时间 T 划分为 S个子集，每个子集内部保留原始时序。 \n",
    "4. 该框架为非参模型，无需过多假设。\n",
    "5. 具备灵活性，可以根据实际情况将夏普比率换成其它策略评价指标。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 284,
   "metadata": {
    "code_folding": []
   },
   "outputs": [],
   "source": [
    "#########################  PBO #####################################\n",
    "\n",
    "class ProbabilityOfBacktestOverfitting(object):\n",
    "    \n",
    "    def __init__(self,returns_df:pd.DataFrame,S:int):\n",
    "        \n",
    "        self.df = returns_df # 收益序列\n",
    "        self.S = S # 切分个数 S必须为偶数\n",
    "        \n",
    "        self.w = []\n",
    "        self.PBO = 0\n",
    "        \n",
    "    def get_group_ids(self):\n",
    "        '''\n",
    "        切分df个数为T/S\n",
    "        '''\n",
    "        idx = self.df.index.get_level_values(0).drop_duplicates()\n",
    "        mapping = pd.Series(np.arange(len(idx)),index=idx)\n",
    "        res = self.df.index.get_level_values(0).map(mapping) % self.S\n",
    "        return res.values\n",
    "    \n",
    "    def split_df(self)->dict:\n",
    "        '''\n",
    "        获取切分后的df\n",
    "        ================\n",
    "        return dict key为range(0,T/S) values df\n",
    "        '''\n",
    "        idx = self.get_group_ids()\n",
    "        df_set = {label:df for label,df in self.df.groupby(idx)}\n",
    "        \n",
    "        return df_set\n",
    "    \n",
    "    # 生成C_s\n",
    "    def get_C_set_id(self)->list:\n",
    "        '''\n",
    "        生成排列组合 0,1,2...对应split_df生成的字典\n",
    "        '''\n",
    "        a = range(self.S)\n",
    "        return list(itertools.combinations(a,int(self.S * 0.5)))\n",
    "    \n",
    "    # 获取每个组合的补集\n",
    "    @staticmethod\n",
    "    def get_complement_set_id(target_set:set,S:int)->set:\n",
    "        \n",
    "        all_set = set(range(S))\n",
    "        c_set = [all_set.difference(a) for a in target_set]\n",
    "\n",
    "        return c_set\n",
    "    \n",
    "    \n",
    "    def get_w(self):\n",
    "        \n",
    "        j = self.get_C_set_id()\n",
    "        hat_j = self.get_complement_set_id(j,self.S)\n",
    "        \n",
    "        df_dict = self.split_df()\n",
    "        \n",
    "        n = len(j)\n",
    "        w_list = []\n",
    "        \n",
    "        for i in tqdm(range(n),desc='获取w'):\n",
    "            \n",
    "            j_df = self.get_j_df(df_dict,j,i)\n",
    "            hat_j_df = self.get_j_df(df_dict,hat_j,i)\n",
    "\n",
    "            # 获取在训练集种的N*\n",
    "            n_start = self.get_Sharpe_Ratio(j_df).idxmax()\n",
    "            # 降序获取排名百分比\n",
    "            w = self.get_Sharpe_Ratio(hat_j_df).rank(ascending=False,pct=True)[n_start]\n",
    "            #print('n*:%s,j_rank:%s,total:%s'%(n_start,hat_j_rank,self.df.shape[1]))\n",
    "            #w = hat_j_rank / (self.df.shape[1] + 1)\n",
    "            \n",
    "            w_list.append(w)\n",
    "            \n",
    "        self.w = pd.Series(w_list) \n",
    "        self.PBO = len(self.w[self.w>0.5]) / len(self.w)\n",
    "        \n",
    "    @staticmethod\n",
    "    def get_j_df(df_dict:dict,j:list,num:int)->pd.DataFrame:\n",
    "        \n",
    "        return pd.concat([df_dict[i] for i in j[num]])\n",
    "    \n",
    "    @staticmethod\n",
    "    # 计算夏普\n",
    "    def get_Sharpe_Ratio(df:pd.DataFrame)->pd.Series:\n",
    "        cum = (1+df).cumprod()\n",
    "        \n",
    "        ann_ret = (cum.iloc[-1]-1)**(250/len(df)) - 1\n",
    "        return (ann_ret - 0.04) / (df.std(ddof=1)*np.sqrt(250))\n",
    "    \n",
    "# 画图 显示w的分布\n",
    "def plot_dist_bar(df:pd.DataFrame):\n",
    "    \n",
    "    df_ = df.copy()\n",
    "    df_.columns = ['T/S=%d'%i for i in df_.columns]\n",
    "    df_ = df_.stack().reset_index(level=1).copy()\n",
    "    df_.columns = ['group','w']\n",
    "    df_['r'] = pd.cut(df_['w'],np.arange(0,1.1,0.125),duplicates='drop')\n",
    "    df_ = df_.groupby('group')['r'].apply(lambda x:x.value_counts() / x.value_counts().sum())\n",
    "    df_.index.names = ['group','g']\n",
    "    df_ = df_.reset_index()\n",
    "    \n",
    "    plt.figure(figsize=(12,6))\n",
    "    plt.title('相对排名分布')\n",
    "    sns.barplot(x='g',y='r',data=df_,hue='group')\n",
    "    plt.ylabel('频率')\n",
    "    plt.xlabel(f'相对排名$\\omega$')\n",
    "    plt.xticks(np.arange(-1,8),[f'{x:.2%}'for x in np.arange(0, 1.1, step=0.125)]) # rotation=90\n",
    "\n",
    "\n",
    "def GetW(ret:pd.DataFrame,step:list):\n",
    "    '''\n",
    "    回测后的returns_df :index-date columns-回测标号\n",
    "    setp:不同的S\n",
    "    '''\n",
    "    w_dict = {}\n",
    "    pbo_dict = {}\n",
    "\n",
    "    for i in step:\n",
    "\n",
    "        pbo = ProbabilityOfBacktestOverfitting(ret,i)\n",
    "        pbo.get_w()\n",
    "\n",
    "        w_dict[i] = pbo.w\n",
    "        pbo_dict[i] = pbo.PBO\n",
    "    \n",
    "    return w_dict,pbo_dict"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# <font color=red>利用不同期限牛熊指标的相对位置对宽基指数择时</font>\n",
    "\n",
    "牛熊指标的新定义：\n",
    "\n",
    "<font size=4>$bull\\_bear^{N}_{t}=\\frac{\\frac{1}{N}\\sum^{t}_{i=t-N+1}turn_i}{std(ret_{i-N+1,\\dots,ret_t})}$</font>\n",
    "\n",
    "其中下标 t 代表时间，角标N代表牛熊指标的参数——期限。N日的牛熊指标就是过去 N 日换手率的平均除以过去 N日的波动率。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 280,
   "metadata": {
    "code_folding": []
   },
   "outputs": [],
   "source": [
    "# 时间偏移\n",
    "def OffsetDate(end_date: str, count: int) -> datetime.date:\n",
    "    '''\n",
    "    end_date:为基准日期\n",
    "    count:为正则后推，负为前推\n",
    "    -----------\n",
    "    return datetime.date\n",
    "    '''\n",
    "\n",
    "    trade_date = get_trade_days(end_date=end_date, count=1)[0]\n",
    "    if count > 0:\n",
    "        # 将end_date转为交易日\n",
    "\n",
    "        trade_cal = get_all_trade_days().tolist()\n",
    "\n",
    "        trade_idx = trade_cal.index(trade_date)\n",
    "\n",
    "        return trade_cal[trade_idx + count]\n",
    "\n",
    "    elif count < 0:\n",
    "\n",
    "        return get_trade_days(end_date=trade_date, count=abs(count))[0]\n",
    "\n",
    "    else:\n",
    "\n",
    "        raise ValueError('别闹！')\n",
    "\n",
    "######################################### 信号生成 ##########################################\n",
    "\n",
    "class BullBearSingal(object):\n",
    "\n",
    "    def __init__(self, symbol: str, start_date: str, end_date: str,\n",
    "                 fast_period: int, slow_period: int):\n",
    "\n",
    "        self.symbol = symbol\n",
    "        self.start_date = start_date\n",
    "        self.end_date = end_date\n",
    "        self.fast_period = fast_period\n",
    "        self.slow_period = slow_period\n",
    "\n",
    "        self.fast_indicator = pd.Series()\n",
    "        self.slow_indicator = pd.Series()\n",
    "        self.Data = pd.DataFrame()\n",
    "        self.Singal = pd.Series()\n",
    "\n",
    "    def QueryIndexData2TS(self) -> pd.DataFrame:\n",
    "\n",
    "        # 初始化输入数据\n",
    "        self.FormatInput()\n",
    "\n",
    "        part_a = distributed_query(my_pro.index_dailybasic,\n",
    "            self.symbol,\n",
    "            self.begin_date,\n",
    "            self.end_date,\n",
    "            fields='ts_code,trade_date,turnover_rate_f')\n",
    "\n",
    "        part_b = distributed_query(my_pro.index_daily,\n",
    "            self.symbol,\n",
    "            self.begin_date,\n",
    "            self.end_date,\n",
    "            fields='ts_code,trade_date,close')\n",
    "\n",
    "        df = pd.merge(part_a, part_b, on=['ts_code', 'trade_date'])\n",
    "        df['trade_date'] = pd.to_datetime(df['trade_date'])\n",
    "        df.set_index('trade_date', inplace=True)\n",
    "        df.sort_index(inplace=True)\n",
    "\n",
    "        self.Data = df\n",
    "\n",
    "    def GetSingal(self):\n",
    "\n",
    "        start = parse(self.start_date).date()\n",
    "        end = parse(self.end_date).date()\n",
    "\n",
    "        self.QueryIndexData2TS()\n",
    "        \n",
    "        ma = pd.concat([\n",
    "            self.CalBullBearIndicator(self.Data, timeperiod)\n",
    "            for timeperiod in [self.fast_period, self.slow_period]\n",
    "        ],\n",
    "                       axis=1)\n",
    "        \n",
    "        ma.columns = ['fast', 'slow']\n",
    "\n",
    "        singal = (ma['fast'] > ma['slow']) * 1\n",
    "        self.Singal = singal.loc[start:end]\n",
    "        self.fast_indicator = ma.loc[start:end, 'fast']\n",
    "        self.slow_indicator = ma.loc[start:end, 'slow']\n",
    "\n",
    "    @staticmethod\n",
    "    # 信号构成\n",
    "    def CalBullBearIndicator(df: pd.DataFrame, period: int) -> pd.Series:\n",
    "\n",
    "        ret = df['close'].pct_change().rolling(period).std()\n",
    "        turnover = df['turnover_rate_f'].rolling(period).mean()\n",
    "        bull_bear = turnover / ret\n",
    "\n",
    "        return bull_bear\n",
    "\n",
    "    def FormatInput(self):\n",
    "\n",
    "        suffix = {'XSHG': 'SH', 'XSHE': 'SE'}\n",
    "        self.symbol = self.symbol[:7] + suffix[\n",
    "            self.symbol[-4:]]  # format symbol\n",
    "\n",
    "        self.period = max(self.fast_period, self.slow_period)  # period\n",
    "        begin_date = OffsetDate(self.start_date, -self.period)  # begin_date\n",
    "        self.begin_date = begin_date.strftime('%Y%m%d')\n",
    "        self.end_date = end_date.replace('-', '')\n",
    "\n",
    "\n",
    "######################################### 回测统计 ##########################################\n",
    "\n",
    "\n",
    "class BackTest(object):\n",
    "\n",
    "    def __init__(self, close_series: pd.Series, singal_ser: pd.Series):\n",
    "\n",
    "        self.close_ser = close_series\n",
    "\n",
    "        self.singal = singal_ser\n",
    "        self.algorithm_ret = pd.Series()\n",
    "        self.nav_df = self.GetAlgorithm()\n",
    "\n",
    "    def GetAlgorithm(self):\n",
    "\n",
    "        next_ret = self.close_ser.pct_change().shift(-1).reindex(\n",
    "            self.singal.index[:-1])\n",
    "        \n",
    "        \n",
    "        self.algorithm_ret = next_ret * self.singal.iloc[:-1]\n",
    "        algorithm_cum = (1 + self.algorithm_ret).cumprod()\n",
    "        \n",
    "        benchmark = (self.close_ser / self.close_ser[0]).reindex(\n",
    "            self.singal.index[:-1])\n",
    "\n",
    "        return pd.DataFrame({\n",
    "            'benchmark': benchmark,\n",
    "            'algorithm_cum': algorithm_cum\n",
    "        })\n",
    "    \n",
    "\n",
    "    def plot_algorithm_cum(self):\n",
    "        \n",
    "        \n",
    "        plt.figure(figsize=(18, 8))\n",
    "        plt.title('策略净值')\n",
    "        plt.plot(\n",
    "            self.nav_df['benchmark'],\n",
    "            color='black',\n",
    "            alpha=0.7,\n",
    "            label='BENCHMARK')\n",
    "        plt.plot(\n",
    "            self.nav_df['algorithm_cum'],\n",
    "            color='red',\n",
    "            alpha=0.7,\n",
    "            label='ALGORITHM_CUM',\n",
    "            markevery=self._GetMaxDrawdown(self.nav_df),\n",
    "            marker='^',\n",
    "            mec='black',\n",
    "            mew=2,\n",
    "            mfc='g',\n",
    "            ms=7)\n",
    "        plt.legend()\n",
    "        plt.show()\n",
    "\n",
    "    @property\n",
    "    def GetRisk(self, show=True):\n",
    "        '''\n",
    "        当show=Fals输出的表格\n",
    "        1.风险收益汇总表;2.分年度收益汇总表\n",
    "        '''\n",
    "        if show:\n",
    "            print('风险指标')\n",
    "            print_table(self.strategy_performance())\n",
    "            print('分年度风险指标')\n",
    "            print_table(self.get_return_year('algorithm_cum'))\n",
    "\n",
    "        else:\n",
    "\n",
    "            return self.strategy_performance(), self.get_return_year(\n",
    "                'algorithm_cum')\n",
    "\n",
    "    #计算组合收益率分析:年化收益率、收益波动率、夏普比率、最大回撤\n",
    "    def strategy_performance(self, nav_df=None):\n",
    "\n",
    "        if isinstance(nav_df, pd.DataFrame):\n",
    "\n",
    "            nav_df = nav_df\n",
    "        else:\n",
    "            nav_df = self.nav_df\n",
    "\n",
    "        ##part1:根据回测净值计算相关指标的数据准备（日度数据）\n",
    "        nav_next = nav_df.shift(1)\n",
    "        return_df = (nav_df - nav_next) / nav_next  #计算净值变化率，即为日收益率,包含组合与基准\n",
    "        return_df = return_df.dropna()  #在计算净值变化率时，首日得到的是缺失值，需将其删除\n",
    "\n",
    "        analyze = pd.DataFrame()  #用于存储计算的指标\n",
    "\n",
    "        ##part2:计算年化收益率\n",
    "        cum_return = np.exp(np.log1p(return_df).cumsum()) - 1  #计算整个回测期内的复利收益率\n",
    "        annual_return_df = (1 + cum_return)**(252 /\n",
    "                                              len(return_df)) - 1  #计算年化收益率\n",
    "        analyze['annual_return'] = annual_return_df.iloc[\n",
    "            -1]  #将年化收益率的Series赋值给数据框\n",
    "\n",
    "        #part3:计算收益波动率（以年为基准）\n",
    "        analyze['return_volatility'] = return_df.std() * np.sqrt(\n",
    "            252)  #return中的收益率为日收益率，所以计算波动率转化为年时，需要乘上np.sqrt(252)\n",
    "\n",
    "        #part4:计算夏普比率\n",
    "        risk_free = 0\n",
    "        return_risk_adj = return_df - risk_free\n",
    "        analyze['sharpe_ratio'] = return_risk_adj.mean() / np.std(\n",
    "            return_risk_adj, ddof=1)\n",
    "\n",
    "        #prat5:计算最大回撤\n",
    "        cumulative = np.exp(np.log1p(return_df).cumsum()) * 100  #计算累计收益率\n",
    "        max_return = cumulative.cummax()  #计算累计收益率的在各个时间段的最大值\n",
    "        analyze['max_drawdown'] = cumulative.sub(max_return).div(\n",
    "            max_return).min()  #最大回撤一般小于0，越小，说明离1越远，各时间点与最大收益的差距越大\n",
    "\n",
    "        #part6:计算相对指标\n",
    "        analyze['relative_return'] = analyze['annual_return'] - analyze.loc[\n",
    "            'benchmark', 'annual_return']  #计算相对年化波动率\n",
    "        analyze['relative_volatility'] = analyze[\n",
    "            'return_volatility'] - analyze.loc['benchmark',\n",
    "                                               'return_volatility']  #计算相对波动\n",
    "        analyze['relative_drawdown'] = analyze['max_drawdown'] - analyze.loc[\n",
    "            'benchmark', 'max_drawdown']  #计算相对最大回撤\n",
    "\n",
    "        #part6:计算信息比率\n",
    "        return_diff = return_df.sub(\n",
    "            return_df['benchmark'], axis=0).std() * np.sqrt(\n",
    "                252)  #计算策略与基准日收益差值的年化标准差\n",
    "        \n",
    "        analyze['info_ratio'] = analyze['relative_return'].div(return_diff)\n",
    "\n",
    "        analyze = analyze.T\n",
    "        analyze = analyze.append(self.TradeCount,sort=True)\n",
    "\n",
    "        return analyze\n",
    "\n",
    "    # 构建每年的收益表现函数\n",
    "    # get_return_year(nav[['benchmark','xxxx']])\n",
    "    def get_return_year(self, method):\n",
    "\n",
    "        nav = self.nav_df[['benchmark', method]]\n",
    "\n",
    "        result_dic = {}  #用于存储每年计算的各项指标\n",
    "        for y, nav_df in nav.groupby(pd.Grouper(level=0, freq='Y')):\n",
    "\n",
    "            result = self.strategy_performance(nav_df)\n",
    "            result_dic[str(y)[:4]] = result.iloc[:-3, 0]\n",
    "\n",
    "        result_df = pd.DataFrame(result_dic)\n",
    "\n",
    "        return result_df.T\n",
    "    \n",
    "    @staticmethod\n",
    "    # 获取最大回撤\n",
    "    def _GetMaxDrawdown(nav_df:pd.DataFrame) -> tuple:\n",
    "        '''\n",
    "        algorithm_cum\n",
    "        ===========\n",
    "        return 最大回撤位置,最大回撤\n",
    "        '''\n",
    "        arr = nav_df['algorithm_cum'].values\n",
    "        i = np.argmax((np.maximum.accumulate(arr) - arr) /\n",
    "                      np.maximum.accumulate(arr))  # end of the period\n",
    "        j = np.argmax(arr[:i])  # start of period\n",
    "        \n",
    "        return [i, j]  # 回撤点，回撤比率\n",
    "\n",
    "    @property\n",
    "    def TradeCount(self):\n",
    "\n",
    "        return pd.DataFrame(\n",
    "            self._GetWinCount(),\n",
    "            index=['trade_count', 'win_count', 'win_ratio'],\n",
    "            columns=['algorithm_cum'])\n",
    "\n",
    "    # TradeCound的底层计算\n",
    "    def _GetWinCount(self) -> list:\n",
    "        '''\n",
    "        统计\n",
    "        '''\n",
    "\n",
    "        flag = np.abs(self.singal.values[:-1])\n",
    "        # 交易次数 1为开仓 -1为平仓\n",
    "        trade_num = flag - np.insert(flag[:-1], 0, 0)\n",
    "\n",
    "        # 交易次数\n",
    "        open_num = sum(trade_num[trade_num == 1])\n",
    "\n",
    "        # 统计开仓收益\n",
    "        temp_df = pd.DataFrame({\n",
    "            'flag': flag,\n",
    "            'algorithm_returns': self.algorithm_ret\n",
    "        })\n",
    "\n",
    "        temp_df['mark'] = (temp_df['flag'] != temp_df['flag'].shift(1))\n",
    "        temp_df['mark'] = temp_df['mark'].cumsum()\n",
    "\n",
    "        # 开仓至平仓的持有收益\n",
    "        tradecumsumratio = temp_df.query('flag==1').groupby(\n",
    "            'mark')['algorithm_returns'].sum()\n",
    "        win = len(tradecumsumratio[tradecumsumratio > 0])\n",
    "\n",
    "        wincount = round(win / open_num, 4)\n",
    "\n",
    "        return [open_num, win, wincount]  # 交易次数，盈利次数,胜率\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 261,
   "metadata": {},
   "outputs": [],
   "source": [
    "symbol = '000001.XSHG'\n",
    "start_date,end_date = '2005-06-01','2019-12-31'\n",
    "\n",
    "# 初始化\n",
    "bullbear = BullBearSingal(symbol,start_date,end_date,30,120)\n",
    "# 计算信号\n",
    "bullbear.GetSingal()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 262,
   "metadata": {},
   "outputs": [],
   "source": [
    "indicator_30 = bullbear.fast_indicator\n",
    "indicator_120 = bullbear.slow_indicator\n",
    "df = bullbear.Data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "首先，明显可以看出短期牛熊指标领先于指数，在指数整体方向开始改变之前短期牛熊指标就已有明显改变趋势；而长期牛熊指标则与指数走势接近一致，虽然在幅度上稍有区别， 但是在方向上几乎一样。针对短期牛熊指标，在关键节点的判断上可能更领先一些，2007 年 9 月份指数的下跌，短期牛熊指标在 2007 年 5 月份已经开始下跌，虽然错过了一部分 涨幅，但是能帮助投资者在大跌之前离场；大盘在 2008 年 11 月份开始反弹，短期牛熊指 标在 2008 年 8 月份已经开始上行；此外指数 2015 年 6 月开始下跌之前，短期牛熊指标 在 2015 年 3 月就已经开始下行；同时，指数 2018 年 1 月开始下跌之前，短期牛熊指标 在 2017 年 10 月就已经开始下行。可见在市场变盘的一些关键节点上，短期牛熊指标都 领先于指数和长期牛熊指标，这是短期牛熊指标的优势。但是短期牛熊指标变化较快，指标的方向性并不稳定，这给利用短期牛熊指标进行择时也添加了难度。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 263,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1296x360 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "fig = plt.figure(figsize=(18,5))\n",
    "\n",
    "ax = fig.add_subplot(1,2,1)\n",
    "ax.set_title('HS300收盘价与其对应的120牛熊指标')\n",
    "ax.plot(df['close'],color='black',alpha=0.7)\n",
    "ax.legend(['close'],loc=2)\n",
    "ax.set_ylabel('PRICE')\n",
    "\n",
    "ax1 = ax.twinx()\n",
    "ax1.plot(indicator_120)\n",
    "ax1.legend(['BULL_BEAR'])\n",
    "ax1.set_ylabel('INDICATOR')\n",
    "\n",
    "\n",
    "ax2 =fig.add_subplot(1,2,2)\n",
    "\n",
    "ax2.set_title('HS300收盘价与其对应的30牛熊指标')\n",
    "ax2.plot(df['close'],color='black',alpha=0.7)\n",
    "ax2.legend(['close'],loc=2)\n",
    "ax2.set_ylabel('PRICE')\n",
    "\n",
    "ax3=ax2.twinx()\n",
    "ax3.plot(indicator_30)\n",
    "ax3.legend(['BULL_BEAR'])\n",
    "ax3.set_ylabel('INDICATOR')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# <font color=red>借鉴双均线策略思想设计“直接牛熊”策略</font>\n",
    "\n",
    "择时模型都存在一个参数寻优的过程，而过拟合是量化模型所必须去研究和克服的。直接牛熊择时策略在参数选择上采用的是较宽的网格搜索，策略存在两个参数，分别是短期和长期牛熊指标的计算窗口长度。具体操作上，短期窗口长度参数的测试区间为 30 日至 60 日，间隔为 5 日；长期窗口长度参数测试区间为 120 日至 250 日，间隔为 10 日。采用夏普比率对选择不同参数的策略进行评价。同时，对于这种参数选择方法，进行过拟合测试。\n",
    "\n",
    "基于组合对称交叉验证(CSCV)框架计算策略的过拟合概率(PBO)的方法，这是一种较好的检验过拟合的方法。其核心思想并非检验某个参数是否过拟合，而是某类策略的参 数选取方法是否容易带来过拟合。具体到本策略中，CSCV框架测算的是针对直接牛熊策 略的网格寻优方法是否容易带来过拟合。在过拟合检验中，过拟合概率 PBO 的定义为： 样本内最优参数在样本外的夏普比率排名位于后 50%的概率。一般情况下 PBO 概率小于\n",
    "\n",
    "50%可以认为过拟合概率不高。PBO 越小，回测过拟合概率越低。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <font color=red>上证 50 直接牛熊择时效果</font>\n",
    "\n",
    "上证 50 短期牛熊和长期牛熊最优窗口长度为 30 日和 140 日。直接牛熊策略从过拟合检验图中可以看出，在各种不同分割方法下，相对排名基本都集中于 12.5%附近，其中在总 样本 8 等分的情况下，过拟合概率 PBO 为 0.43%，可以认为其过拟合概率较低。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 286,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:22:31,980 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:31,980 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:31,980 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:31,980 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:33,012 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:33,012 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:33,012 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:33,012 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:34,052 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:34,052 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:34,052 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:34,052 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:35,102 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:35,102 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:35,102 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:35,102 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:22:36,208 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:36,208 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:36,208 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:36,208 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:37,238 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:37,238 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:37,238 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:37,238 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:38,305 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:38,305 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:38,305 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:38,305 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:39,403 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:39,403 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:39,403 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:39,403 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:22:40,501 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:40,501 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:40,501 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:40,501 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:41,611 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:41,611 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:41,611 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:41,611 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:42,706 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:42,706 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:42,706 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:42,706 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:43,812 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:43,812 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:43,812 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:43,812 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:22:44,902 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:44,902 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:44,902 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:44,902 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:46,008 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:46,008 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:46,008 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:46,008 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:47,108 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:47,108 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:47,108 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:47,108 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:48,204 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:48,204 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:48,204 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:48,204 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:22:49,322 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:49,322 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:49,322 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:49,322 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:50,406 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:50,406 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:50,406 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:50,406 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:51,521 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:51,521 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:51,521 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:51,521 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:52,634 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:52,634 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:52,634 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:52,634 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:22:53,706 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:53,706 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:53,706 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:53,706 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:54,744 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:54,744 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:54,744 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:54,744 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:55,807 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:55,807 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:55,807 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:55,807 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:56,923 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:56,923 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:56,923 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:56,923 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:22:57,956 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:57,956 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:57,956 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:57,956 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:58,987 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:58,987 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:58,987 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:22:58,987 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:00,023 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:00,023 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:00,023 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:00,023 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:01,105 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:01,105 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:01,105 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:01,105 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:23:02,209 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:02,209 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:02,209 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:02,209 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:03,310 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:03,310 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:03,310 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:03,310 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:04,409 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:04,409 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:04,409 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:04,409 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:33,871 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:33,871 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:33,871 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:33,871 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:23:34,902 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:34,902 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:34,902 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:34,902 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:35,934 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:35,934 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:35,934 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:35,934 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:37,008 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:37,008 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:37,008 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:37,008 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:38,122 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:38,122 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:38,122 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:38,122 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:23:39,205 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:39,205 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:39,205 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:39,205 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:40,307 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:40,307 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:40,307 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:40,307 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:41,338 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:41,338 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:41,338 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:41,338 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:42,392 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:42,392 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:42,392 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:42,392 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:23:43,420 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:43,420 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:43,420 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:43,420 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:44,504 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:44,504 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:44,504 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:44,504 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:45,606 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:45,606 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:45,606 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:45,606 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:46,637 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:46,637 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:46,637 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:46,637 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:23:47,709 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:47,709 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:47,709 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:47,709 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:48,808 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:48,808 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:48,808 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:48,808 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:49,909 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:49,909 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:49,909 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:49,909 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:51,003 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:51,003 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:51,003 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:51,003 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:23:52,069 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:52,069 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:52,069 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:52,069 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:53,099 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:53,099 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:53,099 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:53,099 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:54,131 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:54,131 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:54,131 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:54,131 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:55,206 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:55,206 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:55,206 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:55,206 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:23:56,307 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:56,307 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:56,307 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:56,307 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:57,405 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:57,405 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:57,405 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:57,405 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:58,449 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:58,449 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:58,449 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:58,449 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:59,475 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:59,475 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:59,475 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:23:59,475 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:24:00,510 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:00,510 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:00,510 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:00,510 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:01,567 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:01,567 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:01,567 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:01,567 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:02,606 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:02,606 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:02,606 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:02,606 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:03,703 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:03,703 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:03,703 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:03,703 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:24:04,803 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:04,803 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:04,803 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:04,803 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:32,796 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:32,796 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:32,796 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:32,796 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:33,836 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:33,836 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:33,836 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:33,836 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:34,903 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:34,903 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:34,903 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:34,903 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:24:36,015 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:36,015 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:36,015 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:36,015 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:37,048 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:37,048 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:37,048 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:37,048 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:38,107 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:38,107 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:38,107 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:38,107 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:39,206 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:39,206 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:39,206 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:39,206 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:24:40,302 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:40,302 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:40,302 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:40,302 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:41,404 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:41,404 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:41,404 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:41,404 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:42,503 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:42,503 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:42,503 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:42,503 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:43,605 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:43,605 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:43,605 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:43,605 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:24:44,635 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:44,635 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:44,635 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:44,635 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:45,704 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:45,704 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:45,704 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:45,704 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:46,806 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:46,806 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:46,806 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:46,806 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:47,849 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:47,849 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:47,849 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:47,849 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:24:48,904 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:48,904 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:48,904 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:48,904 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:49,936 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:49,936 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:49,936 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:49,936 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:50,976 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:50,976 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:50,976 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:50,976 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:52,065 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:52,065 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:52,065 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:52,065 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:24:53,101 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:53,101 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:53,101 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:53,101 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:54,202 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:54,202 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:54,202 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:54,202 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:55,308 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:55,308 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:55,308 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:55,308 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:56,356 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:56,356 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:56,356 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:56,356 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:24:57,416 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:57,416 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:57,416 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:57,416 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:58,457 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:58,457 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:58,457 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:58,457 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:59,519 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:59,519 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:59,519 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:24:59,519 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:00,561 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:00,561 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:00,561 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:00,561 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 15:25:01,594 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:01,594 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:01,594 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:01,594 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:02,635 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:02,635 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:02,635 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:02,635 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:03,678 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:03,678 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:03,678 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:03,678 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:04,710 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:04,710 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:04,710 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 15:25:04,710 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    }
   ],
   "source": [
    "# 网格寻参\n",
    "symbol = '000016.XSHG'\n",
    "start_date,end_date = '2005-06-01','2019-12-31'\n",
    "\n",
    "ret_dict = {} # 储存各指标的收益数据\n",
    "annual_ret_dict = {}\n",
    "short = range(30,61,5) \n",
    "long = range(120,251,10)\n",
    "\n",
    "for p in list(itertools.product(short,long)):\n",
    "    \n",
    "    fast = p[0]\n",
    "    slow = p[1]\n",
    "    # 初始化\n",
    "    bullbear = BullBearSingal(symbol,start_date,end_date,fast,slow)\n",
    "\n",
    "    # 计算信号\n",
    "    bullbear.GetSingal()\n",
    "\n",
    "    # 回测\n",
    "    bt = BackTest(bullbear.Data['close'],bullbear.Singal)\n",
    "    ret_dict[f'{fast}-{slow}'] = bt.algorithm_ret\n",
    "    annual_ret_dict[f'{fast}-{slow}'] = bt.strategy_performance().loc['annual_return','algorithm_cum']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 287,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "获取w: 100%|██████████| 20/20 [00:00<00:00, 34.67it/s]\n",
      "获取w: 100%|██████████| 70/70 [00:02<00:00, 34.60it/s]\n",
      "获取w: 100%|██████████| 252/252 [00:07<00:00, 33.71it/s]\n",
      "获取w: 100%|██████████| 924/924 [00:27<00:00, 33.39it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "年化收益最优参数:30-140\n",
      "6等分情况下,过拟合概率为0.0\n",
      "8等分情况下,过拟合概率为0.043\n",
      "10等分情况下,过拟合概率为0.016\n",
      "12等分情况下,过拟合概率为0.0\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtUAAAGKCAYAAADDg73UAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3XlclWX+//H3gcOmLIoEhhZulZikZqNTaotDjl+VdBwsv2oulYrpUJpWjFm5FdmmlmupmWSaTsMoaVOMWrl8mRYXMLXcNXdAQGQ7nPv3Bz9PnUBFbjigvp6Px3k8uJfrOp/74nT77uY6920xDMMQAAAAgApzq+4CAAAAgKsdoRoAAAAwiVANAAAAmESoBgAAAEwiVAMAAAAmEaoB4Dp1/vx5FRYWXnG7kydP6rc3jvrll18qsywAuCoRqgGgEpw7d04Wi0VnzpyRJE2fPl1ubm6yWq1OL4vForNnz6pXr16yWCyOV2BgYJn93nXXXVq5cqXTutzcXPn6+qqgoMBp/YW+N2zYoNatW1+yXsMwNGDAAPXq1Uv5+fmlXhcL20VFRerSpYtTTV26dNG8efMuO0aS9NFHH6lv377l2hcAriaEagCoIgMHDpTNZnN6XfDBBx/o+PHjOn78uJYsWaKgoKBy9VlcXKz8/Hzl5uYqPz9fBQUFOnjwoA4ePOi0X2FhoWO93W532ma32zV8+HD985//1Nq1a+Xj41PqFRkZWeb7jx8/Xu7u7urdu7dj3XPPPacxY8bo+++/d9rXMIxSYT0+Pl7NmjUrM8jn5+eruLi4XOMAADUNoRoATPjll1/UvHlztW3bVpJ09913q3nz5jp//vwl29WpU0f169dX/fr1ZRiGQkNDZbPZdO7cOaeX3W5Xfn6+zp07J0latGiRI4DXqVNHr732mrp27aquXbs69b9//37H+tzcXMf6U6dO6c9//rOSkpJ08OBBGYbh9NqxY4cCAgI0bty4UjV//PHHmj17tj766CO5u7s71g8cOFB9+vTRQw89pP379zvW79u3r1RYT0tL09SpU8sM8j4+PlqyZMkV/gYAoGYgVAOACT4+PuratavatGkjSfrTn/6krl27ymq1XrLdP/7xD40ZM0aSdOzYMYWFhen999+Xn5+f02vr1q169NFH5efnJ0l6/PHHdfbsWUklU04mTJig3bt3a/fu3U79N2/e3LH+QtvPPvtM4eHhys3NVVZWlhYuXOg0N/qbb75R586dNXbsWEVFRTn1l5iYqMGDB2vBggUKDw8vdTzz5s1TkyZNdN9992nnzp2SpGbNmjnCenp6uho0aKA33nhDhmHovvvu06JFi0qF+sGDB5d36AGgRiFUA4AJgYGBmj59ujp06CBJuueeezR9+nR5enrqww8/LDWn+oJOnTpp6dKl+uc//6l9+/YpPDxcMTExKi4uVm5uriNktm3bVitWrHCEX4vF4rhK7O7uLovFUu5aO3XqpLlz52rz5s366quvtGjRIm3evFnp6ekaPXq0HnzwQU2aNEkvvPCCU7uEhARFR0dr2rRpeuSRR8rs28vLS5999pkaNmyou+++2xH8Lxg6dKhatWql2NhY2Ww2GYYhu93uNDXmtwEfAK42hGoAqAQJCQmSpKefflqfffaZpEvPqQ4ODtaCBQv0+OOPa926dY4vFj7zzDMaMWJEud7zL3/5i7Zs2VIqsEvS9u3bZbVa1bJlS8c6f39/9enTR5LUtm1bffjhh/roo4/UuHFjpaSk6Ntvvy3zvdu1a6d58+bJMAynL1f+/tW6dWutX79ec+fOVZ06dRztZ82apU8//VRr1qyRp6enPDw89PXXX+vxxx+Xh4eH4zVr1qxyHTcA1ESEagAw6euvv9bRo0clSe+884769++vrKysy7br3r27+vbtq3379umPf/yjJGnMmDH6xz/+oZSUlDLb7N+/XwMHDpQkNW3aVHfddVepwC5JrVq1ks1mU1pamiTJZrMpOTlZ06dP1yOPPKLQ0FA98MADSk1N1cKFC/Xvf/9bjRs3dszl/u2c8FtvvVWPP/64/va3vykvL88xveP48ePKy8tTXl6e5s+fL6vVKm9vb/Xr18/RdsWKFXrxxRfVuHFjzZs3T0VFRSoqKtK9996rBQsWOJa7detW3uEGgBqJUA0AJhQWFuqpp57S888/L0n685//rMTERAUEBFxy+scFN954oyTpiy++kCTddNNN6t+/v1599dUy32/lypX6v//7P0nSG2+8IQ8Pj3LVabVaNW3aNL377rs6f/68Tpw4IUnauHGj+vTpI39/f6e53C1atCjVh7u7u7y9vbVx40bdfPPNql+/vry9veXt7a2ioqJSx5eSkqJhw4Zp1apVatKkidMtBi0W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ACYRqgEAAACTCNUAAACASYRqAAAAwCRCNQAAAGASoRoAAAAwiVANAAAAmESoBgAAAEyyuuqNkpKStHnzZlmtVo0aNUrBwcGSpIyMDM2fP1+5ubkqKirSww8/rDvvvNNVZQEAAACmuSRUp6ena9OmTZoyZYp27typhIQEjRkzRpJUp04dDR48WPXr11dGRoYmTpxIqAYAAMBVxSXTP1JTUxURESF3d3dFRERoz549vxbg5qb69etLkg4ePCir1WUXzwEAAIBK4ZIEm5WVJX9/f0mSxWKRm5ubbDabI0D/9NNPWrBggXJychQbG+uKkgAAAIBK45JQXVxcLDe3Xy+KG4bhFKpvvfVWvfbaa9q/f79WrVql5s2bl+ojOTlZycnJkqT4+HgFBQW5ovRKd7y6C6hGZn9njB0AAKipXBKqAwICdPLkSUklgbq4uFje3t6l9mvSpIkOHDig7Oxsx5XtCyIjIxUZGelYPnPmTNUWjUrH76ziGDsAAKpHaGhoufZzyZzq8PBw7dixQ3a7XampqWratKmWL1+u7777ThkZGSoqKpIknThxQufPn5evr68rygIAAAAqhUuuVIeGhqpDhw4aP368rFarRo4cqVWrVikvL09HjhzRhx9+KB8fH9lsNj355JNOU0UAAACAms5lt9qIiopSVFSUY3nYsGGOn998801XlQEAAABUOi4JAwAAACYRqgEAAACTCNUAAACASZcN1Tt27LjotsOHD1dqMQAAAMDV6LKhes6cOdq+fbt+/PFHSVJGRoZeeuklFRYW6u23367yAgEAAICarlzTPwICAjRnzhylpKRozpw5uu++++Tp6VnVtQEAAABXhXKF6kaNGmnChAlq0KCBoqOjtXPnTmVmZlZ1bQAAAMBVoVyh+tChQ/rggw9Up04dzZ49WwEBAapbt25V1wYAAABcFS4aqu12u9atW6eMjAyFhYWpc+fOmjx5sp5++mmdOnVKa9asUW5urtasWaM1a9a4smYAAACgRrloqHZzc9O2bdskSaNHj9b58+dVUFCglStX6sSJEyouLpZhGCouLlZxcbHLCgYAAABqmktO/xgzZowCAwM1btw4rV+/Xm5ubvrTn/6k48ePq3v37vL19S31+HEAAADgemMtz06hoaF69tlnZbPZtHHjRj333HNVXRcAAABw1SjXFxUPHjyosWPHau/evdq7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sWKFVqxY4WjTunVrxcTE6PDhw8rKylKrVq0kSUlJSTIMQ/3791dhYaHy8vKcppoAwLWOUA0A1SAxMVHNmzeXn5+fJKlTp05atmzZJa9US9KPP/6ogoICbdq0SR07dlSXLl20cOHCUqE6MDBQffv21fr16xUYGHjZekJCQrRgwQJZLBaNHDlS06ZNU+3atZ322blzpz777DNJUkZGhmrXru24U8m2bdt07733Omr09fVVo0aNrmhMAOBqxhcVAaAa/OlPf9LAgQOvqM3hw4e1b98+xcXFKSkpSZJ000036aWXXiq1b1BQkG677TbH8uuvv66nn3661PSPp59+Wt98840kyWKxlLsWX19f5eXl6dSpU9q4caNsNpuOHj2q3NxcrVixQt26dSs1ZQQArmVcqQaAalCvXr0y119s+sfZs2c1Y8YMDR48WM2aNdPzzz/v2JadnS1PT89SodhutzvWjRs3TpIuOv3j98aMGVOqv6KiIkdQb9asme655x6NGzdOzZo107PPPqvXXntNsbGx6tixo3r27Hm5IQCAawqhGgBqkItN/7Db7erZs6djDnOdOnUc+8yfP19paWlOd9o4deqUJk6cqLZt21aojrfeeuuS0z/c3NwUGxvrtP3tt9+u0HsBwLXAYlzuCQIAAAAALokJbwAAAIBJhGoAAADAJEI1AAAAYBKhGgAAADCJUA0AAACYRKgGAAAATCJUAwAAACYRqgEAAACT/h8hje/6uJSifgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 864x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 过拟合检测\n",
    "ret_df = pd.concat(ret_dict,axis=1) # 收益表\n",
    "\n",
    "w_dict,pbo_dict = GetW(ret_df,[6,8,10,12])\n",
    "df = pd.concat(w_dict,axis=1)\n",
    "\n",
    "print('年化收益最优参数:%s'%max(annual_ret_dict,key=annual_ret_dict.get))\n",
    "\n",
    "for a,b in pbo_dict.items():\n",
    "    print(f'{a}等分情况下,过拟合概率为{b:.2}')\n",
    "    \n",
    "plot_dist_bar(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 288,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABBAAAAHkCAYAAACHXtxYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3XmUVOW57/HfrrFnoGkGmVGcEBG9InqMEpTBIFFyJMYcs47GYDRRrhGnmKgxylFQE0ziQFDPgahB70U0hulKO4JjiLYiBlGRsYWmu+m5q6pr175/VPfuqp6nqurq+n7WYrn3u6enaycs6unnfV7DsixLAAAAAAAAbXAkOgAAAAAAAND7kUAAAAAAAADtIoEAAAAAAADaRQIBAAAAAAC0iwQCAAAAAABoFwkEAAD6iI0bN+raa69tNn7zzTfrww8/7NS99u7dq8LCwk5dEwqFOnxuXV1dp+4NAAASz2AZRwAAkl91dbUmTZqkAwcOaPDgwfb4f/7nf+ree+/VkCFDlJaWZo9fdtlluv7667V//357zOv16tRTT5UknX/++Zo4caKWLl3a7FmhUEjPPPOMfvjDH8rtdkuStm3bpjlz5mjr1q0aNGhQu/HOnz9fw4cP129/+1t7bNmyZVq7dq3Wrl3b+Q8AAADEHAkEAACSnN/v1wUXXCDTNPXaa6/ppz/9qbxerx5//HHNmTNHN9xwg2bMmKGf/OQnSktL06OPPipJuuOOO/SXv/xF5eXlGjt2rMrKyrR792598MEHmjJlipxOp/0M0zRVUFCgU045RX6/XxMnTtSPfvQj3Xnnndq/f7+mTZumb775Ri6XS5IUCARUW1srn88nr9cbFW9lZaVGjhypd955R7Nnz7aTGJZlybIsORyNBZKvvvqqpk6dGuuPEAAAdABTGAAASHIej0dz5szR+vXr5XK59OCDD2rRokVatWqVXC6XZsyYIUn605/+pIcffjjq2quuukonn3yynnzySUnhSoYf//jH+ta3vqVgMKhgMKg//OEPGjNmjE444QRJ4UqFhx56SA8++KBef/11nXHGGTr++ON14MABHTx4UN98843OOOMMzZ8/X5ZlyTTNqGc+9thjOvbYYzV+/Hjt3r3bfs6jjz6q2bNn2/vBYJDkAQAAvQgVCAAAJDnTNDV69Ohm49XV1aqpqWlxSsHChQtVWloql8ul/Px8Pfzww5o3b56uueYarV27ViUlJVq4cKHOO+88TZ48WU888YTmzZtnX29ZltavX6+JEydq1apV2rJli/7+97+3GN8TTzyh+fPnS5KKiop0/PHH65RTTtEbb7yh6upqO3afz6dAIKCcnBxJ4WkOixcv7vbnAwAAeoYr0QEAAIDucTqd2rFjR7Pxp556Ss8++6xee+21Zsc8Ho/uueeeZuPXXXedrrnmGu3fv19nn322cnNzdeWVV0YlDyTJMAxdeOGFkqRbb71Vt956qyRpx44dOv3001VVVSVJmj59etR1CxYskMfjsfcty1JJSYkOHz6svLw8e/zmm2+27wEAAHoHEggAAPQBWVlZmjVrll599VV7zLIshUIh9e/fP+rcAwcOKCsrS5J0zz33yLIsnXnmmRoxYoRycnJUWFioNWvWyOVyqaqqSu+//75efPFFzZ49O6qfgWVZevXVV+0pEpEMw7C3G2I6/fTT9Y9//EN33HGHXnjhhajzzznnnKieCwcPHtRll13WjU8EAAD0NHogAADQR5imqWXLlkX1FJgyZYq9X1VVJdM0FTl78a677tLZZ5+t9957T5K0YsUKXX755XK5XPrkk0908OBBLVy4UC+88ILOP/98+f1++9pvfetbOvHEE1VbW2v/+fjjj5WZmWnvT5s2TY8//rh+/OMfa9KkSdqwYYOys7Obxb5582Z9+umn9p8rr7wy5p8XAADoHCoQAADogyzL0nvvvadDhw6prKxMlZWV9uoGkb/pb+rKK6/UU089pYceekgPPfRQ1LFPPvnErkDYtm2b/vnPfyovL09ut1uBQKDVe7pcLvuZxx9/vN59991m51CBAABA70cCAQCAPsLpdMrhcKi8vFxXX321PU3gzDPP1FlnnaVVq1bp7LPPjuo1sGXLFu3fv18rV660xyorK/XSSy/p29/+tj3Wv39/hUIhe//vf/+7Jk+eLK/Xq5deeknf+973omJJT0+3t//jP/6j3dg3b97crAeCz+fr+A8PAABijikMAAD0ERs3blRmZqZOPvlkeb1e3XfffZo8ebJ+/OMf6/nnn9e1116r559/Pqo/QUVFhebMmaPa2tpOPWvFihWaOXOmJGnu3LmyLEuWZelf//qXMjMz7f37779f48aNa/d+55xzjiZMmGD/WbFiRafiAQAA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tceDvaiItm43bd1u7vnd7zi9TRtMhw+H/ysowLZ8Odl33ol94cJ4vJQwr732GkONRQhD/H5/2BeYMZXujTfeiMnYolFCRRTLHnmEsgceAIIBhKTNm0l+/33MR46EF06Mk0WLFjF58uR4D0MIIVq1n3/+GavVGvYdXhuRJ3AgLfREw3z11VdAsDhiTk5OlfuNHDmy0jpjAKF79+78z//8DzfddBN/+9vfeOWVV8jOzg5rYdiSbdmyhZtvvpn169fz008/UVhYiMPh0IN+ECyY2r17d9LS0qps56hNb7Lb7UBwCtiUKVMYM2YML730El27duX48ePk5+fz888/c/rpp9OuXTvuueeeehehtdvtzaY2WmOSGgiiVSoqKgprlzOid29OS0lhYkUFw0IfBKbycrLHj+eBUOpT1mOP1fi4KR98gLdvX/y9ezfNwGshOTmZzMzMSusjAwhWq5WsrCxKSkpYs2YNbdq04ZprronlUAFQQh/4vi5dUEItHU0lJaQappZY163D8d//HfOxaTZu3MjcuXMBcLlc+peTEEKI2Fq1ahXdunWr8wF/tADCunXruOSSSxppZKK1mDx5MocPH+bw4cOceuqpehG9CRMmkJOTw6effsrixYu59dZbyczMpEOHDpUq+hvn4rdt2xa73R42DSI1NRVXAme2NqY333wTCE792Lz5ZKeZ7OzssP0URaFLly6sXLmSm2++OezE/aefftLbPBrrRphMJq666iogGKjx+Xw89dRTAJx//vmcf/75TfOiWjgJIIhWafny5QRCJ6sA7f7+dwIHD5KelUWHkhJo25by228Hk4n//dvfAOhz551VPl7a9On6ctKuXXENIFQlEAiEfWEB3HLLLfpV9QULFsQ8gGA6fvxk1obNRiA0rUKJaC3pihK9jyVj7+ETJ05IAEEIIeJg48aNOByOsLZrtRUt4PDOO+/w448/cmc13+9CGHm93rCT3Isvvlhf7tWrFwC//e1vufjii/XOAVW56KKL2L9/f9TsBbvdjsPhAGDXrl1s3LiRsWPHtrir3evXr9c7oZ04cSJsmzVK4Wzt+Ovmm2/mpptu0oMuH3zwAeXl5QBV/tx79uwZdnvQoEENG3wrJgEE0eq43W5WrlzJ4MGD9ZY7iteLoigoqqqfZHsuuACAraEIqOdXv6ryMR0lJaTMmweA5aefsBuCEw2l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\n",
      "text/plain": [
       "<Figure size 1296x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "风险指标\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>algorithm_cum</th>\n",
       "      <th>benchmark</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>annual_return</th>\n",
       "      <td>0.185432</td>\n",
       "      <td>0.108348</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>return_volatility</th>\n",
       "      <td>0.175086</td>\n",
       "      <td>0.276625</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sharpe_ratio</th>\n",
       "      <td>0.066735</td>\n",
       "      <td>0.032162</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max_drawdown</th>\n",
       "      <td>-0.440849</td>\n",
       "      <td>-0.724059</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>relative_return</th>\n",
       "      <td>0.077084</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>relative_volatility</th>\n",
       "      <td>-0.101540</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>relative_drawdown</th>\n",
       "      <td>0.283210</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>info_ratio</th>\n",
       "      <td>0.238777</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>trade_count</th>\n",
       "      <td>56.000000</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>win_count</th>\n",
       "      <td>29.000000</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>win_ratio</th>\n",
       "      <td>0.517900</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     algorithm_cum  benchmark\n",
       "annual_return             0.185432   0.108348\n",
       "return_volatility         0.175086   0.276625\n",
       "sharpe_ratio              0.066735   0.032162\n",
       "max_drawdown             -0.440849  -0.724059\n",
       "relative_return           0.077084   0.000000\n",
       "relative_volatility      -0.101540   0.000000\n",
       "relative_drawdown         0.283210   0.000000\n",
       "info_ratio                0.238777        NaN\n",
       "trade_count              56.000000        NaN\n",
       "win_count                29.000000        NaN\n",
       "win_ratio                 0.517900        NaN"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "分年度风险指标\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>annual_return</th>\n",
       "      <th>return_volatility</th>\n",
       "      <th>sharpe_ratio</th>\n",
       "      <th>max_drawdown</th>\n",
       "      <th>relative_return</th>\n",
       "      <th>relative_volatility</th>\n",
       "      <th>relative_drawdown</th>\n",
       "      <th>info_ratio</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2005</th>\n",
       "      <td>0.037920</td>\n",
       "      <td>0.121693</td>\n",
       "      <td>0.023075</td>\n",
       "      <td>-0.119448</td>\n",
       "      <td>-0.153566</td>\n",
       "      <td>-0.070165</td>\n",
       "      <td>5.134781e-16</td>\n",
       "      <td>-0.658122</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2006</th>\n",
       "      <td>1.252986</td>\n",
       "      <td>0.196967</td>\n",
       "      <td>0.266340</td>\n",
       "      <td>-0.076151</td>\n",
       "      <td>-0.059139</td>\n",
       "      <td>-0.023116</td>\n",
       "      <td>5.471646e-02</td>\n",
       "      <td>-0.203119</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2007</th>\n",
       "      <td>0.521547</td>\n",
       "      <td>0.232111</td>\n",
       "      <td>0.121346</td>\n",
       "      <td>-0.142361</td>\n",
       "      <td>-0.869729</td>\n",
       "      <td>-0.131681</td>\n",
       "      <td>5.788924e-02</td>\n",
       "      <td>-2.022755</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008</th>\n",
       "      <td>-0.003397</td>\n",
       "      <td>0.127653</td>\n",
       "      <td>0.002321</td>\n",
       "      <td>-0.138461</td>\n",
       "      <td>0.678683</td>\n",
       "      <td>-0.363963</td>\n",
       "      <td>5.713265e-01</td>\n",
       "      <td>1.339091</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2009</th>\n",
       "      <td>0.460161</td>\n",
       "      <td>0.265214</td>\n",
       "      <td>0.098305</td>\n",
       "      <td>-0.277586</td>\n",
       "      <td>-0.355420</td>\n",
       "      <td>-0.062051</td>\n",
       "      <td>1.209357e-03</td>\n",
       "      <td>-0.845842</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010</th>\n",
       "      <td>-0.041675</td>\n",
       "      <td>0.176985</td>\n",
       "      <td>-0.009582</td>\n",
       "      <td>-0.146432</td>\n",
       "      <td>0.180565</td>\n",
       "      <td>-0.070625</td>\n",
       "      <td>1.469377e-01</td>\n",
       "      <td>0.615073</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011</th>\n",
       "      <td>-0.063260</td>\n",
       "      <td>0.086098</td>\n",
       "      <td>-0.045094</td>\n",
       "      <td>-0.094625</td>\n",
       "      <td>0.140505</td>\n",
       "      <td>-0.116977</td>\n",
       "      <td>1.826462e-01</td>\n",
       "      <td>0.626934</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012</th>\n",
       "      <td>0.081547</td>\n",
       "      <td>0.131696</td>\n",
       "      <td>0.041599</td>\n",
       "      <td>-0.118601</td>\n",
       "      <td>-0.090412</td>\n",
       "      <td>-0.062105</td>\n",
       "      <td>6.495998e-02</td>\n",
       "      <td>-0.378425</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013</th>\n",
       "      <td>-0.150064</td>\n",
       "      <td>0.205548</td>\n",
       "      <td>-0.043381</td>\n",
       "      <td>-0.241658</td>\n",
       "      <td>0.017152</td>\n",
       "      <td>-0.045282</td>\n",
       "      <td>4.426225e-02</td>\n",
       "      <td>0.053486</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014</th>\n",
       "      <td>0.749724</td>\n",
       "      <td>0.214092</td>\n",
       "      <td>0.171450</td>\n",
       "      <td>-0.087009</td>\n",
       "      <td>0.068540</td>\n",
       "      <td>-0.011108</td>\n",
       "      <td>-1.716042e-03</td>\n",
       "      <td>0.231370</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015</th>\n",
       "      <td>0.201412</td>\n",
       "      <td>0.227200</td>\n",
       "      <td>0.058082</td>\n",
       "      <td>-0.123554</td>\n",
       "      <td>0.290829</td>\n",
       "      <td>-0.174754</td>\n",
       "      <td>3.230451e-01</td>\n",
       "      <td>0.636301</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016</th>\n",
       "      <td>0.074428</td>\n",
       "      <td>0.105251</td>\n",
       "      <td>0.046265</td>\n",
       "      <td>-0.068182</td>\n",
       "      <td>0.066919</td>\n",
       "      <td>-0.087068</td>\n",
       "      <td>1.065321e-01</td>\n",
       "      <td>0.308774</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017</th>\n",
       "      <td>0.148066</td>\n",
       "      <td>0.085801</td>\n",
       "      <td>0.104089</td>\n",
       "      <td>-0.056491</td>\n",
       "      <td>-0.101242</td>\n",
       "      <td>-0.025886</td>\n",
       "      <td>7.309065e-03</td>\n",
       "      <td>-0.731726</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018</th>\n",
       "      <td>-0.127556</td>\n",
       "      <td>0.098666</td>\n",
       "      <td>-0.083972</td>\n",
       "      <td>-0.143440</td>\n",
       "      <td>0.091803</td>\n",
       "      <td>-0.120664</td>\n",
       "      <td>1.411200e-01</td>\n",
       "      <td>0.410121</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019</th>\n",
       "      <td>0.232501</td>\n",
       "      <td>0.182583</td>\n",
       "      <td>0.077857</td>\n",
       "      <td>-0.150661</td>\n",
       "      <td>-0.138064</td>\n",
       "      <td>-0.010523</td>\n",
       "      <td>-3.348582e-02</td>\n",
       "      <td>-0.508146</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      annual_return     ...      info_ratio\n",
       "2005       0.037920     ...       -0.658122\n",
       "2006       1.252986     ...       -0.203119\n",
       "2007       0.521547     ...       -2.022755\n",
       "2008      -0.003397     ...        1.339091\n",
       "2009       0.460161     ...       -0.845842\n",
       "2010      -0.041675     ...        0.615073\n",
       "2011      -0.063260     ...        0.626934\n",
       "2012       0.081547     ...       -0.378425\n",
       "2013      -0.150064     ...        0.053486\n",
       "2014       0.749724     ...        0.231370\n",
       "2015       0.201412     ...        0.636301\n",
       "2016       0.074428     ...        0.308774\n",
       "2017       0.148066     ...       -0.731726\n",
       "2018      -0.127556     ...        0.410121\n",
       "2019       0.232501     ...       -0.508146\n",
       "\n",
       "[15 rows x 8 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 初始化\n",
    "bullbear = BullBearSingal(symbol,start_date,end_date,30,140)\n",
    "\n",
    "# 计算信号\n",
    "bullbear.GetSingal()\n",
    "\n",
    "# 回测\n",
    "bt = BackTest(bullbear.Data['close'],bullbear.Singal)\n",
    "\n",
    "# 净值画图\n",
    "bt.plot_algorithm_cum()\n",
    "\n",
    "# 风险指标\n",
    "bt.GetRisk"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## <font color=red>沪深300择时效果</font>\n",
    "\n",
    "沪深 300 短期牛熊和长期牛熊最优窗口长度经网格搜索后分别为 40 日和 130 日。直接牛熊策略在将总样本 8 等分的情况下过拟合概率 PBO 为 0.5，处于一个较为尴尬的位置。与上证 50 类似，沪深 300 直接牛熊策略在 07 年牛市中能捕捉到前半程，在 15 年和 19 年上涨中也均取得不错的捕捉效果，在震荡市中能在保持稳定的基础上缓慢上升。从策略的绩效表现来看，直接牛熊策略的年化收益为 20%。然而虽然其表现优异，但过拟合概率较高，在实际市场中失效可能性也较大。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 264,
   "metadata": {
    "code_folding": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:33:35,514 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:35,514 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:35,514 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:35,514 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:36,564 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:36,564 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:36,564 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:36,564 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:37,602 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:37,602 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:37,602 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:37,602 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:38,631 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:38,631 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:38,631 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:38,631 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:33:39,667 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:39,667 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:39,667 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:39,667 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:40,706 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:40,706 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:40,706 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:40,706 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:41,804 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:41,804 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:41,804 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:41,804 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:42,838 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:42,838 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:42,838 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:42,838 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:33:43,910 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:43,910 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:43,910 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:43,910 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:45,005 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:45,005 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:45,005 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:45,005 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:46,115 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:46,115 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:46,115 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:46,115 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:47,206 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:47,206 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:47,206 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:47,206 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:33:48,303 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:48,303 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:48,303 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:48,303 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:49,404 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:49,404 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:49,404 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:49,404 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:50,508 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:50,508 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:50,508 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:50,508 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:51,610 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:51,610 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:51,610 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:51,610 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:33:52,708 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:52,708 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:52,708 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:52,708 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:53,735 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:53,735 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:53,735 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:53,735 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:54,768 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:54,768 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:54,768 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:54,768 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:55,799 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:55,799 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:55,799 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:55,799 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:33:56,838 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:56,838 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:56,838 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:56,838 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:57,905 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:57,905 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:57,905 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:57,905 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:58,938 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:58,938 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:58,938 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:58,938 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:59,980 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:59,980 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:59,980 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:33:59,980 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:34:01,013 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:01,013 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:01,013 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:01,013 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:02,102 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:02,102 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:02,102 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:02,102 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:03,203 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:03,203 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:03,203 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:03,203 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:04,232 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:04,232 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:04,232 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:04,232 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:34:05,302 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:05,302 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:05,302 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:05,302 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:06,407 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:06,407 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:06,407 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:06,407 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:07,438 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:07,438 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:07,438 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:07,438 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:08,468 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:08,468 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:08,468 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:08,468 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:34:36,771 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:36,771 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:36,771 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:36,771 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:37,805 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:37,805 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:37,805 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:37,805 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:38,904 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:38,904 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:38,904 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:38,904 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:40,002 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:40,002 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:40,002 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:40,002 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:34:41,031 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:41,031 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:41,031 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:41,031 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:42,057 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:42,057 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:42,057 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:42,057 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:43,104 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:43,104 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:43,104 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:43,104 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:44,132 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:44,132 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:44,132 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:44,132 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:34:45,167 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:45,167 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:45,167 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:45,167 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:46,197 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:46,197 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:46,197 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:46,197 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:47,304 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:47,304 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:47,304 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:47,304 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:48,407 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:48,407 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:48,407 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:48,407 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:34:49,441 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:49,441 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:49,441 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:49,441 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:50,469 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:50,469 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:50,469 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:50,469 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:51,509 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:51,509 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:51,509 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:51,509 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:52,604 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:52,604 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:52,604 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:52,604 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:34:53,630 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:53,630 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:53,630 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:53,630 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:54,662 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:54,662 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:54,662 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:54,662 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:55,702 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:55,702 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:55,702 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:55,702 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:56,730 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:56,730 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:56,730 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:56,730 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:34:57,801 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:57,801 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:57,801 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:57,801 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:58,903 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:58,903 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:58,903 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:58,903 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:59,930 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:59,930 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:59,930 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:34:59,930 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:01,001 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:01,001 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:01,001 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:01,001 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:35:02,036 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:02,036 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:02,036 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:02,036 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:03,110 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:03,110 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:03,110 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:03,110 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:04,206 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:04,206 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:04,206 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:04,206 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:05,236 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:05,236 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:05,236 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:05,236 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:35:06,266 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:06,266 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:06,266 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:06,266 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:07,303 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:07,303 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:07,303 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:07,303 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:08,337 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:08,337 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:08,337 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:08,337 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:09,402 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:09,402 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:09,402 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:09,402 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:35:36,155 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:36,155 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:36,155 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:36,155 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:37,204 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:37,204 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:37,204 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:37,204 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:38,236 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:38,236 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:38,236 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:38,236 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:39,314 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:39,314 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:39,314 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:39,314 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:35:40,415 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:40,415 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:40,415 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:40,415 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:41,443 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:41,443 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:41,443 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:41,443 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:42,471 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:42,471 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:42,471 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:42,471 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:43,503 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:43,503 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:43,503 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:43,503 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:35:44,538 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:44,538 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:44,538 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:44,538 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:45,568 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:45,568 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:45,568 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:45,568 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:46,595 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:46,595 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:46,595 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:46,595 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:47,628 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:47,628 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:47,628 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:47,628 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:35:48,703 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:48,703 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:48,703 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:48,703 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:49,742 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:49,742 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:49,742 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:49,742 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:50,771 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:50,771 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:50,771 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:50,771 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:51,804 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:51,804 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:51,804 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:51,804 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:35:52,832 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:52,832 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:52,832 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:52,832 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:53,864 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:53,864 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:53,864 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:53,864 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:54,889 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:54,889 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:54,889 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:54,889 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:55,923 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:55,923 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:55,923 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:55,923 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:35:56,956 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:56,956 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:56,956 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:56,956 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:58,000 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:58,000 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:58,000 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:58,000 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:59,107 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:59,107 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:59,107 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:35:59,107 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:00,209 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:00,209 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:00,209 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:00,209 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:36:01,237 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:01,237 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:01,237 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:01,237 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:02,304 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:02,304 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:02,304 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:02,304 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:03,336 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:03,336 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:03,336 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:03,336 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:04,408 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:04,408 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:04,408 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:04,408 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:36:05,621 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:05,621 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:05,621 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:05,621 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:06,647 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:06,647 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:06,647 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:06,647 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:07,703 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:07,703 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:07,703 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:07,703 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:08,804 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:08,804 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:08,804 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:08,804 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2020-06-12 13:36:09,913 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:09,913 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:09,913 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n",
      "2020-06-12 13:36:09,913 TuShare <ipython-input-12-118d3fe8324f>:91 wrapper ERROR TuShare exec trade_cal failed, args:(), kwargs:{'exchange': 'SSE', 'start_date': '20050104', 'end_date': '20191231'}, try again.\n",
      "Traceback (most recent call last):\n",
      "  File \"<ipython-input-12-118d3fe8324f>\", line 85, in wrapper\n",
      "    return m(*args, **kwargs)\n",
      "  File \"/opt/conda/lib/python3.6/site-packages/tushare/pro/client.py\", line 43, in query\n",
      "    raise Exception(result['msg'])\n",
      "Exception: 抱歉，您每分钟最多访问该接口60次，权限的具体详情访问：https://tushare.pro/document/1?doc_id=108。\n"
     ]
    }
   ],
   "source": [
    "# 网格寻参\n",
    "symbol = '000300.XSHG'\n",
    "start_date,end_date = '2005-06-01','2019-12-31'\n",
    "\n",
    "ret_dict = {} # 储存各指标的收益数据\n",
    "annual_ret_dict = {}\n",
    "short = range(30,61,5) \n",
    "long = range(120,251,10)\n",
    "\n",
    "for p in list(itertools.product(short,long)):\n",
    "    \n",
    "    fast = p[0]\n",
    "    slow = p[1]\n",
    "    # 初始化\n",
    "    bullbear = BullBearSingal(symbol,start_date,end_date,fast,slow)\n",
    "\n",
    "    # 计算信号\n",
    "    bullbear.GetSingal()\n",
    "\n",
    "    # 回测\n",
    "    bt = BackTest(bullbear.Data['close'],bullbear.Singal)\n",
    "    ret_dict[f'{fast}-{slow}'] = bt.algorithm_ret\n",
    "    annual_ret_dict[f'{fast}-{slow}'] = bt.strategy_performance().loc['annual_return','algorithm_cum']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 283,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "获取w: 100%|██████████| 20/20 [00:00<00:00, 79.04it/s]\n",
      "获取w: 100%|██████████| 70/70 [00:00<00:00, 72.84it/s]\n",
      "获取w: 100%|██████████| 252/252 [00:03<00:00, 73.37it/s]\n",
      "获取w: 100%|██████████| 924/924 [00:13<00:00, 70.42it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "年化收益最优参数:40-130\n",
      "6等分情况下,过拟合概率为0.65\n",
      "8等分情况下,过拟合概率为0.5\n",
      "10等分情况下,过拟合概率为0.61\n",
      "12等分情况下,过拟合概率为0.55\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtoAAAGKCAYAAAAyiOZZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3XlYlXX+//HXgSNgsigSKJq4VeJIijY6ZpYZGd+UZPxhU9qolRWOZmmaMWaTW5G2mC0u5ZZkmk7jKGnjMGilOMyUG5ZamWvihsqibIdz//7w8kwnUBHOfdiej+s618W9fO7zvj/c3Ly4+Zz7thiGYQgAAACAS3lUdQEAAABAbUTQBgAAAExA0AYAAABMQNAGAAAATEDQBgAAAExA0AYAOFy4cEFFRUXX3O7EiRP65U2sfv75Z1eWBQA1EkEbAEySl5cni8Wi06dPS5JmzZolDw8PWa1Wp5fFYtG5c+cUGxsri8XieAUGBpa53VtvvVWrVq1ymnf+/Hn5+vqqsLDQaf6lbW/atEmdOnW6Yr2GYejhhx9WbGysCgoKSr0uF8CLi4vVp08fp5r69OmjefPmXbWPJOmjjz7Sgw8+WK51AaAmIWgDgBsNGTJENpvN6XXJ4sWLlZmZqczMTC1dulRBQUHl2mZJSYkKCgp0/vx5FRQUqLCwUAcPHtTBgwed1isqKnLMt9vtTsvsdruefPJJ/e1vf9P69etVv379Uq+oqKgy33/ixIny9PTUgAEDHPMmTJigsWPH6ptvvnFa1zCMUgE+MTFRbdu2LTPcFxQUqKSkpFz9AADVDUEbAFzs559/Vrt27dSlSxdJUvfu3dWuXTtduHDhiu0aNmyoJk2aqEmTJjIMQ6GhobLZbMrLy3N62e12FRQUKC8vT5K0aNEiRyhv2LChXn31VUVHRys6Otpp+z/99JNj/vnz5x3zT548qXvvvVfJyck6ePCgDMNweu3atUsBAQEaP358qZo//vhjvffee/roo4/k6enpmD9kyBANHDhQ999/v3766SfH/P3795cK8Lt379b06dPLDPf169fX0qVLr/E7AADVA0EbAFysfv36io6OVmRkpCTp7rvvVnR0tKxW6xXb/fWvf9XYsWMlSceOHVNYWJg++OAD+fn5Ob22b9+uP/7xj/Lz85MkPfbYYzp37pyki8NVJk2apL1792rv3r1O22/Xrp1j/qW2n332mcLDw3X+/HllZ2dr4cKFTmOtv/rqK/Xu3Vvjxo1TTEyM0/ZWr16tYcOGacGCBQoPDy+1P/PmzVPr1q1155136ttvv5UktW3b1hHgs7Ky1KxZM7322msyDEN33nmnFi1aVCroDxs2rLxdDwDVCkEbAFwsMDBQs2bNUo8ePSRJt912m2bNmiUvLy99+OGHpcZoX9KzZ08tW7ZMf/vb37R//36Fh4crPj5eJSUlOn/+vCN4dunSRStXrnQEYovF4ria7OnpKYvFUu5ae/bsqblz5yotLU1ffPGFFi1apLS0NGVlZWnMmDG65557NGXKFL3wwgtO7ZKSkhQXF6cZM2boD3/4Q5nb9vb21meffabmzZure/fujj8GLnn88cfVsWNHjR49WjabTYZhyG63Ow2r+WXoB4CahqANACZJSkqSJD3zzDP67LPPJF15jHZwcLAWLFigxx57TKmpqY4PLz777LMaMWJEud7z97//vbZu3VoqxEvSzp07ZbVa1aFDB8c8f39/DRw4UJLUpUsXffjhh/roo4/UqlUrpaen67///W+Z7921a1fNmzdPhmE4fYDz169OnTpp48aNmjt3rho2bOho/+677+rTTz/VunXr5OXlpXr16unLL7/UY489pnr16jle7777brn2GwCqI4I2AJjgyy+/1NGjRyVJb7/9tgYPHqzs7Oyrtuvbt68efPBB7d+/X7/73e8kSWPHjtVf//pXpaenl9nmp59+0pAhQyRJbdq00a233loqxEtSx44dZbPZtHv3bkmSzWZTSkqKZs2apT/84Q8KDQ3VXXfdpYyMDC1cuFD/+Mc/1KpVK8fY8F+OMb/pppv02GOP6amnnlJ+fr5jaEhmZqby8/OVn5+v+fPny2q1ysfHR4MGDXK0XblypV588UW1atVK8+bNU3FxsYqLi3XHHXdowYIFjun77ruvvN0NANUSQRsAXKyoqEhPP/20nn/+eUnSvffeq9WrVysgIOCKQ0cuadq0qSRpw4YNkqQbbrhBgwcP1iuvvFLm+61atUr//ve/JUmvvfaa6tWrV646rVarZsyYoXfeeUcXLlzQ8ePHJUmbN2/WwIED5e/v7zQ2vH379qW24enpKR8fH23evFktWrRQkyZN5OPjIx8fHxUXF5fav/T0dD3xxBNas2aNWrdu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4uPjFRkZqcTERIWHhyshIcGpzbRp0zR37lyNGzdOd911l5o3b64333xT8+bNc3f5AAAAKAeCtpsdOXJEvr6+CgwMlCTl5ubKz89PklRQUKCQkBCFh4dr9erVpdped911jg9L5ubmcscRAACAaoyg7WbJycnq27evYzo1NVXvvPOOfH195ePjo8TExMu2ffrpp/Xcc8/p/fffl7e3t15//XV3lAwAAIAKqFNBuzy34zNLenq6JGnEiBFO8/v376/+/fuXaxtt27bVp59+6vLaAAAA4HrcdQQAAAAwAUEbAAAAMAFBGwAAADABQRsAAAAwQa0O2oZhVHUJ1QZ9AQAA4F61Omh7eHjIZrNVdRlVzmazycOjVn+rAQAAqp1afXs/Hx8fFRQUqLCwUBaLparLqRKGYcjDw0M+Pj5VXQoAAECdUquDtsViUf369au6DAAAANRBjCcAAAAATEDQBgAAAExA0AYAAABMQNAGAAAATEDQBgAAAExQq+86AgAA6rbM8cMr1b7pzA9cVAnqIq5oAwAAACYgaAMAAAAmIGgDAAAAJiBoAwAAACYgaAMAAAAmIGgDAAAAJiBoAwAAACbgPtoAAABwuWFLtlaq/eKh3V1USdXhijYAAABgAoI2AAAAYAKCNgAAAGACgjYAAABgAoI2AAAAYAKCNgAAAGACgjYAAABgAoI2AAAAYAKCNgAAAGACgjYAAABgAoI2AAAAYAKCNgAAAGACgjYAAABgAoI2AAAAYAKru94oOTlZaWlpslqtGjVqlIKDgx3LDMPQkiVLdPDgQb300kuSpD179mjWrFmO9caMGaPAwEB3lQsAAABUiluCdlZWlrZs2aJp06bp22+/VVJSksaOHetYvmDBAnl7ezu1yc3NVa9evfTQQw+5o0QAAADApdwydCQjI0MRERHy9PRURESE9u3b57T8gQce0L333us0Ly8vT35+fu4oDwAAAHA5t1zRzs7Olr+/vyTJYrHIw8NDNptNVuvFt/f391dBQUGpdqmpqUpPT1dYWJiGDBkiLy8vp+UpKSlKSUmRJCUmJiooKMjkPamdPlqYUan2gx+NcFElAMqjMj+zdfvnNbNSrev275ia23eVq7xuf98r23eV9Y81VVeBq77vbgnaJSUl8vD438VzwzCcgnZZevfurd69e8swDC1atEjJyckaMGCA0zpRUVGKiopy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lQsAAABUiluCdlZWlrZs2aJp06bp22+/VVJSksaOHetYvnDhQv35z3+W1WrViy++qE6dOik3N1e9evXSQw895I4SAQAAAJdyy9CRjIwMRUREyNPTUxEREdq3b59j2alTp+Tj46PAwED5+/vr+uuv15EjR5SXlyc/Pz93lAcAAAC4nFuuaGdnZ8vf31+SZLFY5OHhIZvNJqvVquzsbKdA7e/vr+zsbElSamqq0tPTFRYWpiFDhsjLy8tpuykpKUpJSZEkJSYmKigoyB27Y4rMqi6gClXm+1bV/faPNVVbQU3uu6r8ea3se1d131Ul+q7i6LuKq8nnuqrEMVdxrvod5ZagXVJSIg+P/108NwzDEbRtNpsMwyi1rHfv3urdu7cMw9CiRYuUnJysAQMGOG03KipKUVFRjunTp0+bvzNwOb5vFVeT+64qa6/J/VbV6LuKo+8qjr6rGPqt4q7Wd6GhoeXajluGjgQEBCg3N1fSxSBdUlIiHx8fSVLDhg2Vl5fnWDc3N1cNGzZ0TFssFkVGRuro0aPuKBUAAABwCbcE7fDwcO3atUt2u10ZGRlq06aNVqxYoa+//lohISHKzc3VmTNnlJOTo8zMTLVo0cIxfESS9uzZoxYtWrijVAAAAMAl3DJ0JDQ0VD169NDEiRNltVo1cuRIrVmzRvn5+bJYLHr88cc1c+ZMSdKwYcNktVq1ceNGbd26VV5eXgoKClJ8fLw7SgUAAABcwm330Y6JiVFMTIxj+oknnnB83aFDB73yyitO68fGxio2NtZd5QEAAAAuxZMhAQAAABMQtAEAAAATELQBAAAAExC0AQAAABMQtAEAAAATELQBAAAAExC0AQAAABMQtAEAAAATELQBAAAAExC0AQAAABMQtAEAAAATELQBAAAAExC0AQAAABMQtAEAAAATELQBAAAAExC0AQAAABMQtAEAAAATELQBAAAAExC0AQAAABMQtAEAAAATELQBAAAAExC0AQAAABMQtAEAAAATELQBAAAAExC0AQAAABMQtAEAAAATELQBAAAAExC0AQAAABMQtAEAAAATELQBAAAAExC0AQAAABMQtAEAAAATELQBAAAAExC0AQAAABMQtAEAAAATELQBAAAAExC0AQAAABMQtAEAAAATELQBAAAAExC0AQAAABMQtAEAAAATELQBAAAAExC0AQAAABMQtAEA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\n",
      "text/plain": [
       "<Figure size 864x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 过拟合检测\n",
    "ret_df = pd.concat(ret_dict,axis=1) # 收益表\n",
    "\n",
    "w_dict,pbo_dict = GetW(ret_df,[6,8,10,12])\n",
    "df = pd.concat(w_dict,axis=1)\n",
    "\n",
    "print('年化收益最优参数:%s'%max(annual_ret_dict,key=annual_ret_dict.get))\n",
    "\n",
    "for a,b in pbo_dict.items():\n",
    "    print(f'{a}等分情况下,过拟合概率为{b:.2}')\n",
    "    \n",
    "plot_dist_bar(df)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用最优参数回测40-130进行回测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 289,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABBAAAAHkCAYAAACHXtxYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3XeYVPXZ//HPmbZ9Ka6CiBQFC0FEEixRRKQpkAQTNJZEEbEkxp+J4dFHHzRGTCKWmBh7eSLBEgvKE0GNLDbQGE0UAXsUpNdl2+xOPef3x8yendmd7btzdmbfr+vy4pzvKXPvHNmLuef+3l/DsixLAAAAAAAAzXA5HQAAAAAAAOj+SCAAAAAAAIAWkUAAAAAAAAAtIoEAAAAAAABaRAIBAAAAAAC0iAQCAABZ4uWXX9Zll13WaHzevHl6//3323SvTZs2adu2bW26xjTNVp8bDofbdG8AAOA8g2UcAQDIfH6/X6NHj9bWrVt1wAEH2OPnn3++FixYoH79+ik3N9ceP/vss/Wzn/1MW7ZsscdycnJ0zDHHSJImTpyoUaNG6c4772z0WqZp6rHHHtM555wjr9crSVq3bp1mzJihf/3rX9p///1bjHfu3Lk66KCD9Otf/9oeu//++7Vs2TItW7as7W8AAADociQQAADIcMFgUKeddpqi0aheffVVXXLJJcrJydF9992nGTNm6Morr9TkyZN10UUXKTc3V/fcc48kaf78+frLX/6iiooKDR06VOXl5dq4caPeffddHXfccXK73fZrRKNRrVmzRkcffbSCwaBGjRqlH/3oR7r++uu1ZcsWTZgwQdu3b5fH45EkhUIh1dbWKhAIKCcnJyneqqoqHXzwwXr77bc1bdo0O4lhWZYsy5LLVV8guXLlSo0fP76r30IAANAKTGEAACDD+Xw+zZgxQy+++KI8Ho9uu+023XzzzXryySfl8Xg0efJkSdKf/vQn/eEPf0i6ds6cOTrqqKP08MMPS4pVMlx44YU66aSTFIlEFIlE9Mc//lFDhgzREUccISlWqXD77bfrtttu02uvvaZjjz1Whx9+uLZu3aodO3Zo+/btOvbYYzV37lxZlqVoNJr0mvfee6+GDx+uESNGaOPGjfbr3HPPPZo2bZq9H4lESB4AANCNUIEAAECGi0ajGjx4cKNxv9+vmpqalFMKrrrqKpWVlcnj8ai0tFR/+MMfNGvWLF166aVatmyZ9u7dq6uuukqnnnqqxo4dq4ceekizZs2yr7csSy+++KJGjRqlJ598UqtXr9YLL7yQMr6HHnpIc+fOlSTt2rVLhx9+uI4++mi9/vrr8vv9duyBQEChUEjFxcWSYtMcbrnllg6/PwAAoHN4nA4AAAB0jNvt1qefftpo/JFHHtHjjz+uV199tdExn8+nm266qdH45ZdfrksvvVRbtmzRiSeeqL59+2r27NlJyQNJMgxD06dPlyRdffXVuvrqqyVJn376qb71rW+purpakjRp0qSk66644gr5fD5737Is7d27V7t371ZJSYk9Pm/ePPseAACgeyCBAABAFigsLNTUqVO1cuVKe8yyLJmmqd69eyedu3XrVhUWFkqSbrrpJlmWpeOPP14DBw5UcXGxtm3bpueee04ej0fV1dX65z//qeeff17Tpk1L6mdgWZZWrlxpT5FIZBiGvV0X07e+9S299957mj9/vpYsWZJ0/rhx45J6LuzYsUNnn312B94RAADQ2eiBAABAlohGo7r//vuTegocd9xx9n51dbWi0agSZy/ecMMNOvHEE/XOO+9Ikh599FGdd9558ng8Wrt2rXbs2KGrrrpKS5Ys0cSJExUMBu1rTzrpJB155JGqra21//vwww9VUFBg70+YMEH33XefLrzwQo0ePVovvfSSioqKGsW+atUqrV+/3v5v9uzZXf5+AQCAtqECAQCALGRZlt555x3t3LlT5eXlqqqqslc3SPymv6HZs2frkUce0e23367bb7896djatWvtCoR169bp3//+t0pKSuT1ehUKhZq8p8fjsV/z8MMP1z/+8Y9G51CBAABA90cCAQCALOF2u+VyuVRRUaGLL77YniZw/PHH64QTTtCTTz6pE088ManXwOrVq7VlyxYtWrTIHquqqtLSpUt1yimn2GO9e/eWaZr2/gsvvKCxY8cqJydHS5cu1RlnnJEUS15enr197rnnthj7qlWrGvVACAQCrf/hAQBAl2MKAwAAWeLll19WQUGBjjrqKOXk5Oi3v/2txo4dqwsvvFBPPfWULrvsMj311FNJ/QkqKys1Y8YM1dbWtum1Hn30UU2ZMkWSNHPmTFmWJcuy9Mknn6igoMDe/93vfqdhw4a1eL9x48Zp5MiR9n+PPvpom+IBAABdjwoEAAAynN/v16OPPqr7779foVBIv//97zVr1izdf//9kqRrrrlG06ZN09VXX61DDjlEU6dO1ZVXXql+/fpp9uzZ+ulPf6poNKovv/zSvueECROafL1Vq1bpiy++0DnnnJM0vnXrVu3evTspQfHf//3frfoZqEAAAKD7I4EAAECGc7lc+uCDD3T77bdrypQpSR/g6xx11FF66aWXtH79ej3++OMqKCjQFVdcYR93u9067LDD7P3XXnut0RSGOscee6zuvvvuRpUFv/zlL/Xcc88lXdecn/70p3riiSfUq1evJqsUwuGwHnjggVbdDwAAdC3DSmzFDAAAAAAAkAI9EAAAAAAAQItIIAAAAAAAgBaRQAAAAAAAAC0igQAAAAAAAFpEAgEAAAAAALQobcs4btu2LV0vldVKSkq0Z88ep8NAGvHMex6eec/DM++ZeO49D8+85+GZ9zyZ+swHDBjQqvOoQAAAAAAAAC0igQAAAAAAAFpEAgEAAAAAALQobT0QGrIsS4FAQKZpyjAMp8LIODt37lQwGHQ6jEYsy5LL5VJubi7PEwAAAACykGMJhEAgIK/XK4/HsRAyksfjkdvtdjqMlCKRiAKBgPLy8pwOBQAAAADQyRybwmCaJsmDLOPxeGSaptNhAAAAAAC6QKsSCH6/XzfeeKOefvrppPHnn39eN954Y7temDL37MRzBQAAAIDs1GICIRqNauHChY3WhdyxY4c+++yzLgssHQYNGqQzzjhD3/3ud/WjH/1I5eXlkqRZs2ZpypQpmjlzpmbOnClJeuqppzR27Nik/gPHHXecvb1r1y7NnTtXkyZN0uTJk3XnnXdKko488sik1zzuuONUUVEhSTrooIN0//33Jx2fMmWKZs2alTQ2ffp0Pf/88/b+5s2bNXz4cM2cOVOnn366li9fLkl6++23NWfOHElSMBjU9OnT9fHHH7f/DQIAAAAAIK7FBILb7da8efN02GGHJY0vXrzY/nCdqQoKCvT888/rb3/7m4YOHapnn33WPvb73/9eS5cu1dKlS+2xSCSiRYsWpbzXFVdcoQkTJqi0tFQrVqzQ3LlzW3z9oUOHasWKFfb+1q1bZVlW0jlbt26V3+/XsmXLksaHDBmipUuXavHixZo/f76i0WjS8VtuuUU/+MEPNGLEiBbjAAAAAACgJa2awlBcXJy0//rrr2vEiBHq27dvlwTlBL/fr/79+zd7zsUXX6z//d//VXV1ddL4559/rrKyMp133nn2WFFRUYuv2b9/fwWDQe3du1eStGLFCk2ePDnpnGXLlumss87Sp59+Kr/f3+geJSUlKiwsVFlZmT22evVqbdiwwa5GAAAAAACgo9rcxbCyslKrV6/Wddddpz179jR5XmlpqUpLSyXFvg0vKSlJOr5z5067ieLixYv19ddftzWUZg0ePFg//vGPmz3H7/frzDPP1M6dOzVmzBi7osIwDF199dUqKCjQkCFDdOedd8rtduuAAw7QmWeeqYcffljz5s2TYRjyeDzauHGjRo0albIpZN1r1Nm9e7c8Ho88Ho8Mw9CUKVNUWlqq8847T2+88YYuv/xyvffee/a9XnzxRd16663asGGDVq5cqe9///tyu932a3/yySdyuVzq16+fvvrqK1VVVemqq67Ss88+60iTypycnEbPGh3j8Xh4T3sYnnnPwzPvmXjuPQ/PvOfhmfc82f7M2/wJc+3atfrqq6906aWXyjRN1dTUaMGCBbr++uuTzps0aZImTZpk7zdMNgSDQXs5QtM0G5Xud5RpmopEIs2eU1BQoGeeeUaSdMMNN+j+++/X3LlzZVmWbr31Vo0cOVJSbOpC3RSBSy65RFOnTtX5558vy7IUiURUW1srwzBSvl7ia0ixHgiRSESRSESWZWnSpElauHChpk+fLsuylJuba993+/bt2rx5sw477DBNnDhRzz77rL7//e8rGo1qw4YNmjFjhjZu3KhnnnlGpmkqGo3qyy+/1PTp0/Xwww/rpptu6qy3s9WCwWCziSW0XUlJCe9pD8Mz73l45j0Tz73n4Zn3PDzznidTn3nDnodNaXMC4aSTTtJJJ50kKdY48N57722UPGirxNJ/p0yYMCGpB0JTioqKNHv2bN1999322ODBg/Xwww+363VHjBihjRs3avny5Ro/fnzSsRdffFG1tbUaP368otGodu3aZU9jqOuB8MMf/tBu/ihJo0eP1g033KDTTjtNX3zxhYYPH96uuAAAAAAASNSqHgg9wZo1azRs2LBWnXvBBReotLRUlZWVkqSjjz5a1dXVeumll+xzGjY1bM7JJ5+shQsXNup/sHz5cj3yyCN688039dZbb2nixIl65ZVXks75n//5H914441JFRxer9ceBwAAAACgM7Q6gXDKKafo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iooKUlJSWnVtTaHVeJaXl5OWllbnfYqLiykuLqZfv36tubT6BZSMmLdvJ/mRRyh6662guyT9858A1IwZ06pLE0II0XY89dRTAPTv3z+sx9dVn66qKjU1NUydOpXy8nISExN58cUX22ypomg7lixZEnT9nXfeoX///syePZtx48bx008/UVxcTGJiIieffHLQfePj4wFwOBx6uez69ev12++55x4effRRMjIyWvinaJtUVWXOnDmsXbtW35abm9umT+JpXn/9dbp06cLf/va3aC+lxYT96fjLL79gsVjo3LlzJNcjRFQcPnwY8B2ABx54v/zyy+Tn5wNHzuqHe+ajNSQnJwMwffp0Kisr67zPlClTeOSRR1pzWQ1zuRq8WSkuPnLFaGzhxQghhGirtKB+enp6WI83m811bq+pqdGnLFVUVOA6yveS6NiysrLIysrSs1f/8Y9/MGjQIEpKSrjrrrvYt28fc+fOZePGjezdu5dRo0bVCl5pAYSSkhKWLl1a5+v8/PPPLfuDtGF5eXlBwQOABQsWRGk1R+d2u5k2bRqvvvoq2dnZtQJGsSasAIJW83PVVVdFej1CRMWBAwcAX8mC2WwO+sPfsGED0D4CCIFr21xHPwG3263vgDkcjlZbV0OUgCwPXcDOm23hQgAqJ0xorSUJIYRogzIyMujRowd9+/YN6/H1BRBCxx9LGYOoj9vtZvr06Xq565133snxxx/f4DHR6aefXmubFgT7+OOPa6W7z5s3j4SEBAoKCiK48valrp+9rv3a1lRWVsYtt9zCjh07at1WUlJCTk6OHvQYMWJEay+vVYVVwvDJJ59w/vnnN9gB95tvvuGbb74BfCln4UaLRTCTySS/yxZQWVmJxWIhMTERr9dLjx499MhvSkoK6enpZGVlYbFYyMjIaPp7cOAAhiVL8N50U5PPojflPU9ISNDLMLR1B9q6dat++z333MPEiRM555xzmrSeiKupwRRSOpJuNoN/7caiIjj1VJKuuoqkuh4fg+TvvOOR97xjkve98RYtWkRubi4XX3xx2L+z9PT0OvsgxMXFYbPZ9Brr5ORkPaMv0uQ9b9+2bdum/xsaNWoU5513HoqikJqayllnnRV01rxLly4cOnSIE088MWgKCIDRaMRisZCdnc3w4cN59NFH2bFjB3369CEhIYHU1FSMRmOH/beyYcOGoL9V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qFevHvXq1bttUcby5csbjz///HMCAwN58MEHqV27dpZjSExMJCkpSXfLRPJB2ouNiRMn3nGxtcKQPiXf1dWVmJgYatasSaNGjayKyeVGhw4d+OSTT4znycnJVsVz07NkT1p07dqVtm3bGl18LOLi4ihRogQRERHGOc+KFSt45513OH/+PMuXL8fJyYkRI0ZQq1YtTCYT7u7ubNmyhZdffjnLpRvpiwnLvcHFxcWqTlOZMmVYsGABjo6OxgV+Vu2/e/Towb59+zIsF9y4cSNPPvmk8fzKlStWNYnULcP2KQNBigXLXfWXypXjgQceIO7W2q60EuvXJ6FJk4IeWpFhubNenOsgWApKPfbYY1aZBmmlvesN/6TzjRs3DpPJRFRUlNFesEOHDjla45qdIUOG4OTkRK1atWjRogVOTk5GwMfZ2Zk+ffpkqNng6urKokWL8Pb2NsZYEIKDg4HU4o858cADD2TaDm39+vXG47i4OEJCQmjcuDFTp07lhRdeMF67XUcHFxcXq/7gP/30E++//z6hoaGZ7r9jxw769u3Lv//9bwYOHMjZNB1aRCR30mYOpW1jW5Sl/509fvx4evfujZOTE8OGDcvwN+BOmUwmq4v15cuXG48TExMZNGgQa9asITAwkD///JOgoCBatmwJQIMGDejWrRuenp6MHz+enj170uTWeUtYWBgJCQnG33BPT08uXLhAv379mDRpElFRUXTr1o2AgADj4rBhw4aMGjUKV1fXPB2T3DucnJyssgMyq7Hh5OTEvHnz6NKli5HtB/D4448DqedFaTNn0i6TmTZtmlVwQWyTMhCkWAgKCsLDw4P28fGk1KpF1IsvFvaQihzLBWlxDSBEREQYnQzSpvGll/4OmqXdkYeHB2azmTVr1uDv74+Pjw/PP/98vozN09MzQ3ppTnl7e/P7778zaNCgfBlLdrIKIFjatDVo0IBXXnmFI0eO4O/vb1UvoV27dmzevJmYmBgg9ed76dIlzGYz1atXz7KTRXpVq1blzTfftKoEfuLECavijhbbt2+3er506VImT56c4+8SkYws66Yh44V5UZV+nJUqVcpz69n03nrrLSZNmgRgFaw8evQoMTExfP/993z//ffG9sqVK7NgwQKrsVWvXp3q1atz+fJl9uzZw9ixY4F/lki0a9fOKJho8cQTT+Trcci9r2LFijRr1izD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sWPHCAkJMZapWFL45Z9ODW+99RaNsghIms1mI3iQVlZLHXJq7969hIWFsXPnzizbcu7fv58NGzYwf/58m7v43r59OwBLliyhYcOGmM1m1qxZQ0SajDMp+kJCQvDy8irsYYiISD7ToiuxOW63TswdT5wg2cuLC+fPc8LNjQeioqi2YAF2/v6sWrYMn9BQutx/P44nTpBStiwUwfZ6Rdm4ceNISkrCycmJMWPGGNs7duzIhg0biI+PL5ItC9P6+uuvjcd79+7F3t6eQYMGGeMOCAgorKEVioCAAJamKTY6evRokpOTMZvN2NnZMXPmTCIiIozaIaVLl9ba3Ez4+/vj7+/P8ePHjWUxSUlJhIeH8+abb1K6dGmjMOO0adOYN28ely9f5vLly0ZNkTuVlJTExx9/bGSGQOoFWo8ePTLsazab2bhxo/E8ODiY++67j19++YUHHngg12MoCGazmRs3buDp6YnJZKJRo0Zs376d1atXs3r1at566y38/f3v6DMjIyO5dOkStWrV0t3wAhIfH09ISEieloiJiEjRpAwEsSkOx48bj80ODjgeOsTNlBScW7fGzmQiLj6e871703zjRvqdPUuDVatwPHaMxFtp+JJz1atXz/RE3VIToahnIJjNZqu10wcPHsTX17fIBz0KUkBAAHXr1qVevXpUq1YNgMOHDxuvly5durCGZhMCAgJ47rnnAJg+fTpHjhwBIDw8nNDQULp06cJ9991n1E/Yvn07QUFBucoIOH78uFXwAGDdunWcOXPGatvOnTvp168fgYGBPPHEEwC8/fbbjBw5kkWLFjFhwoQsMxcKU0JCAqtXryYmJsYIjFSvXt1qn/fee4/ExETWr1+fo7oSZ86cYfz48cyYMYMDBw7clXFLRufPnyclJSXD/ImIiO1TAEFsitOtE+j4hATio6KwP3yYI56exFWrhslk4saNGyysXt34X+TbbxMxdiwxffsW8sjvHZYL8KIcQLh58yYrVqwgNjaWhx56CEhNz7/TO5fFibOzM2DdYaNVq1aFNRyb0aBBAwBOnz5NWFiY1WtVqlQBoGzZskBq14+3337bqsZITl2+fBmAWrVqWW1Pu1Ti9OnTxmd7enryr3/9i9q1awOpLTst/vrrL3766SeOHTt2x+O4Wy5evMiAAQNYs2YNADVr1gRSl1Sl98knn7By5Uo++eSTLJc1nDlzhilTphAeHg7Ap59+qq4Od1lsbCzvvPMO33zzDYARmBQRkXuHAghiU0wxMZhJvRv327ZtpERFEenoiN3993PFyYkffXwIdHencocOvLl4MUl+fiT5+WF2dS3sod8zPDw8gNSL9KLqiy++MFK40xa9K1++fGENqcizs7PD09OT5ORkIPWOeps2bQp5VEVfxYoV6dmzJ5CaEZD+NUi9CB49erSx/ddff72j7zh16hSrVq3C29ubMWPGMHr0aFq3bg1AYGAgR48eJSkpyWgp6ujoyMyZM7Gzs8t0icOcOXP45ptveP/9942imYXJbDazatUqq20VKlQAUutOdO7c2eq1tJkYf/zxh9XnWAQGBrJlyxbjuY+PD4mJierocJetWrWK8+fPExgYCPzz90JERO4dCiCITTHFxPDLhQtcc3GhfFQUSUlJlImPx93Dg4/9/fmjfHk8PT0ZMGAAnp6ehT3ce1K5cuUAOHLkCH379jXaZRYladtM1q1blzJlygDgqkBSlizrwz09PY2LX8le586dmTBhAg0bNrTKckn7MwwICGD8+PHG81mzZt328yxBnJiYGCZPnsy0adNISEgwsgkCAgJ4+eWX+b//+z8A1qxZw6JFi4z3v/DCC0amUNWqVZk4cSKzZs3iww8/zJDBYFl2UVh++OEHRo4caQQF+vfvz4wZM6xqFfTo0YMXXngh0/db9gsNDWXgwIEsWrSIq1evMmHCBHbv3g3A0qVLeeONNwAyLPm4U+mzTOQfZ86cYfPmzcZzLV8QEbk3KYAgNsXh5EluJiZS/tYa3oSEBP4qWdK4QARUqfsusxSIs9zdu9O7qXfb8uXLiYqKMp67ubnRp08fIPUupNye5U56u3btCnkktqdatWq8/vrrRsHRKlWqZCjYV716daNw5+HDhwkJCcnwOcHBwbzyyiusWLGC0aNHc/bsWQCaNm3Ks88+a7VvnTp1aN68OadOnWLXrl1AaoeNRx991Gq/qlWrUq5cOcqWLcugQYOoV68eo0aNwsnJibNnz2I2m4m91a2mIP3999+sXr2a69evG9tatWplZB9YmEwm2rdvzxdffGFV0BVSgycfffQRmzZtIi4ujl9++YVly5Zl+K6yZcvi4uKS6c88p86dO8eIESNYu3at1c8rNjaWpKSkLLtshIWFkZSUlOvvLmrMZjP79+83MtEuXrzIlClTAGjTpg0TJ07k1VdfLcwhiojIXaLy2mIzHPfvx3zzJvdHR7PBx4eOwcHExsVxytvbKOwHZNvrXvLG3t6e0qVLG2uqC+PCIzAwkO+//54hQ4bg5ORkbE9OTjaWLnh4eBAZGYmDgwMNGzZk4cKF6iiQjZYtW9KkSROrn6ncGZPJxOzZs42aEumNHj2asLAwRo8ezebNm+ndu7fx2tmzZ5k/fz5JSUls2LDB2P7www8zaNCgTD8v7fd0794926r3JUuWZOTIkQA0adKEbdu2sW3bNiA1gNShQ4cC+3cye/ZsAD788ENGjhx52ywDC0dHR2rVqsW7775LUlISf/31F+vWrWP//v1W+x08eJAWLVpQvnx5o5aCyWTC19eX48ePYzabc9WNwdIKdtWqVaxatYrp06dz/vx5q5aomf2eiYqKYsSIEQBMnTrV5v5GnT17lmvXrhEQEICrqyunT59m5cqVRnDL19fXqDXTokULnnnmGS1dEBG5h+lsWmyG45EjxNy6WI12cMDuVtHEcvXr4+TkRMeOHYmIiMj2JFTy7oEHHjACCDExMQX+/R988AEREREcOXKEhg0bGhcDlqwIe3t7PvroIyMVHFDwIIdud+ErOZc2I+p2r1eoUIFr164Z28xmM5MnTzaeBwQEcPxW1xlLZkhmLMskxo8ff8cp4x07drTKIFq5cqVRnNDDw4OYmBiio6PvSu0Qs9lsZAOULVuWJUuW5Pi9lkwiX19fHnvsMTZt2sTKlSut9qlRo0aGTIwWLVqwcOFCJk6cyODBgzNkOmQn7dIoSC1geTxNZyBIDTL4+flhb2/P8uXLrdppAqxfv/62waCiyGw28/HHHxuFKC08PT2pXbs2x44dIzAwkMDAQFxdXenfvz92dkpuFRG5l+mMWmyGfXAwETExfOLnR+Nq1UgJDCQkOZkrV64AGO3U5O4bMGAA+/btA2Dfvn1s3bqVtm3bFtj3W5apzJ07l1dffZXmzZsDqeupIfXCwt7eHnt7+wIbk8id8PDw4ODBg5w8eRI/P78MXU1GjBjBd999x1NPPYW7u/ttP+fxxx+nUaNGRm2SO+Hj48Ozzz7LtWvXjCwESF0W0Lt3b95++23CwsKYP39+vrc/PXToEACdOnXK0+c4OTnRuXNnqlatipeXF25ubpjN5kzrnTRp0oSFCxcSGBjI+++/z4cffnhH33XmzBmqVauGl5cXu3fv5vjx43h5eeHg4GB0yZgxYwaQml2RPnjg6+vLH3/8Qc+ePXM1XwUhKioKd3d3EhISSElJITw8nPDwcEwmk1WRyunTp+Pm5sb169eZOnUqYWFhlClTRsEDEZFiQAEEsQkOZ87gePIkISEhXPXyIrFaNU57eLC5YkW6du1a2MMrdtJfTHz55ZcFGkBIy1LULDIy0siGeP311wtlLCI5Zck+ePfdd3nttdeMVHtIrTPi5OREr169sv0ce3v7PF2MWi7gO3bsyIkTJ1i4cCGbN2+2Kob39ddf8+9//ztHnxcXF4ejo2OWwbvdu3fz2WefAeDn55frsadlqS2RFRcXF15//XU++uijTNtDpnXlyhV+/vlnunXrhslk4uDBg1y/fp0OHTrQvn17EhMTiYqK4v/+7/9wcHAgLi6ON954g+joaACropaVKlXirbfeIjY2ljFjxrBw4UKrrhxFxYoVK6yWzsA/rVynTZvG999/z759+3jwwQdxc3MDUrNH+vbtm+WyHRERubcogCA2wT4wkKTkZJJupaQ3ffRRpuzcCaTeVZLCd/PmTUqWLHnXvydtwTXAWK9vyUQZMmQIpUqVuuvjEMmLmjVrcvXqVQA+/vhjq7oT6TslFAQvLy+8vLwoV66ccRfdYufOnTz55JP4+Phw9epV3n33XRo3bmzUbzCbzfz444+EhISwY8cOunTpwlNPPYWjo2OmtQZWr16Ns7MzL774IvXq1SuQ47No2LAhTZs25eTJk8a2NWvWkJycTKdOnYyL4O+//54//viDn376yer9lrl57bXXrGopuLi48Morr7B7924OHTpkdLd48803qVu3LpCa9l+9enWOHz/OpUuXWLVqFQMHDrxtdkdISIgRTLrbzp8/nyF4ALBjxw5KlSpFxYoVee2114iKisownvr16zNs2LA7XhIiIiK2SQEEsQmm2FiS0lS4TpueWrZs2cIYUrFXt25djhw5QokSJYiNjSUwMLBALgZ23gocWSxbtoyVK1fy1FNPAWodJrahb9++NG/enA0bNnD06FFj++zZswu1AF1AQAAzZszgiy++oHPnziQmJvLJJ58wduxYpkyZwsaNGwkPD2fz5s106NCBHTt2kJiYaHXxuW7dOjZt2kS5cuV4++23jbvVFrGxsTRr1owWLVoU9OEBqcGS33//nZs3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gerVq9+9gxQRERERERHJIQUQMmEymXjuuec4c+YMffr0oUSJEgDUrFmTOXPm8PPPP1OlShV8fX0pW7Zsnr7H19cXgIceeoiHHnrIeK1FixZ5OwgRERERERGRfKQAwm20a9eOdu3aZdheunRpnnnmmUIYkYiIiIiIiEjhsSvsAYiIiIiIiIhI0acAgoiIiIiIiIhkSwEEEREREREREcmWAggiIiIiIiIiki0FEEREREREREQkWwogiIiIiIiIiEi2FEAQERERERERkWwpgCAiIiIiIiIi2VIAQURERERERESypQCCiIiIiIiIiGRLAQQRERERERERyZYCCCIiIiIiIiKSLQUQRERERERERCRbCiCIiIiIiIiISLYUQBARERERERGRbCmAICIiIiIiIiLZUgBBRERERERERLKlAIKIiIiIiIiIZMtkNpvNhT0IERERERERESnalIFgY8aMGVPYQ5ACpjkvfjTnxY/mvHjSvBc/mvPiR3Ne/Nzrc64AgoiIiIiIiIhkSwEEEREREREREcmW/TvvvPNOYQ9C7kzVqlULewhSwDTnxY/mvPjRnBdPmvfiR3Ne/GjOi597ec5VRFFEREREREREsqUlDCIiIiIiIiKSLYfCHoDA9evXWbRoEREREZhMJoYNG4a9vT1z584lPj6ehg0b0qNHDwDWr1/Pb7/9hoODA0OHDsXLywuz2czy5cvZt28fLi4uTJs2rZCPSLKT1zk/deoUS5cuxWQy4efnR58+fQr5iCQn7mTeo6OjmTlzJgEBATz77LMAhIeHZ7qvFF15nfMtW7awbds2EhMTeeSRR3j66acL83AkB/I65xarV6/m0KFDaKVp0ZfXOdd5nG3K67zrXM725HTOM9uvXLly98x5nGogFAEpKSn4+PjQs2dPkpKS2Lt3L4cPH6ZVq1b06dOHb7/9lurVq5OUlMSKFSuYOnUq5cuX54cffqBZs2Zs2bKFCxcuMG7cOB5//PHCPhzJgbzO+aeffkqfPn3o0aMH69evp0qVKpQsWbKwD0uykdN5d3d3Z9q0afj4+ODi4kLt2rUBWLp0aYZ9Ne9FW17nPCYmhh49evD4448zb948WrZsibOzcyEflWQlr3MOcOXKFbZu3UpSUhKPPvpo4R2M5Ehe51zncbYpr/Oucznbcydznn6/Bg0a3DPncVrCUAS4u7tTs2ZNAEqXLk1MTAxHjx6lQYMGmEwmGjRowJEjRzhy5Ah169bF3t6eunXrcvLkSQB27NhBjx49sLPTdNqKvM55iRIluH79OsnJyURGRuLi4lKYhyM5lNN5t7e358033zT2tchsXyna8jrnderUwdHREQcHB9zd3YmNjS2Mw5A7kNc5B/jqq6/o2rVrQQ9dcimvc67zONuU13nXuZztyemcZ7Yf3DvncfpNVcT88ccfNGrUiPj4eBwdHQHw9PTk5s2b3Lx5E09PTwBMJhN2dnYkJSURFBTEnj17mDRpEkuWLCElJaUwD0HuUG7m/MUXX+Sbb77hrbfe4tFHH6V8+fKFeQiSC1nNu+VxerfbV2xDbubc4sqVK6SkpODt7V0gY5X8kZs53759OwEBAZQpU6ZAxyr5IzdzrvM425ebede5nG3Lbs7T7wf3znmcAghFyP79+wkLC6Np06YkJSUZ281mM0lJSSQnJ5O2aYZle1xcHH5+fkycOJHo6Gj27t1bGMOXXMjtnO/ZswdfX18ee+wx/vjjD+Li4gpj+JJL2c377dzJvlK05HbOAZKTk/nPf/5D37597/YwJR/lZs4jIiL49ddfefLJJwtqmJKPcvvvXOdxti23865zOduV0zlPux/cO+dxCiAUESEhIXz99dcMHToUk8mEi4sLCQkJAERGRlKqVClKlixJZGQkkPofXXJyMi4uLnh5eREQEABAzZo1uXLlSqEdh+RcXub8hx9+YPDgwXTo0IG6devyyy+/FOahyB3Iybzfzp3sK0VHXuYcUtPZa9euTZ06dQpiuJIPcjvnhw8f5ty5c7z66qu89dZbnDx5kilTphTk0CWX8vLvXOdxtisv865zOduU0zlPvx/cO+dxCiAUAXFxccyZM4dBgwZRunRpAGrVqsXBgwcxm80cOHCAgIAAatWqxeHDh0lJSeHIkSNUq1YNgOrVq3Ps2DEAzp8/T6VKlQrtWCRn8jrnTk5Oxi+gmJgYrZuzETmd99u5k32laMjrnG/fvp3Q0FB69uxZUEOWPMrLnLdo0YJFixaxYMEC3nvvPfz8/Bg/fnxBDl9yIa//znUeZ5vyOu86l7M9OZ3zzPa73b62SG0ci4D//e9/XL16lS+//BIAR0dHhg4dyscff8wPP/xA/fr1jQvHRx55hLfffhsHBweGDBkCwAsvvMB//vMfli9fTsWKFY11NlJ05XXOX3rpJd577z0cHBzw9vbm+eefL7RjkZy7k3nPTO/evXO8rxQNeZ3zBQsWcN999zFhwgQA2rdvT8uWLQtk7JI7eZ1zsT15nXOdx9mmvM67zuVsT07n/Icffsiw34QJE+6Z8ziTOe0CaxERERERERGRTGgJg4iIiIiIiIhkSwEEEREREREREcmWAggiIiIiIiIiki0FEEREREREREQkWwogiIiIiIiIiEi2FEAQERERERERkWwpgCAiIiIiIiIi2VIAQURERERERESypQCCiIiIiIiIiGTr/wFJvWpvVM7H2gAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1296x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "风险指标\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>algorithm_cum</th>\n",
       "      <th>benchmark</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>annual_return</th>\n",
       "      <td>0.202006</td>\n",
       "      <td>0.118991</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>return_volatility</th>\n",
       "      <td>0.173631</td>\n",
       "      <td>0.274489</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sharpe_ratio</th>\n",
       "      <td>0.072269</td>\n",
       "      <td>0.034491</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max_drawdown</th>\n",
       "      <td>-0.361405</td>\n",
       "      <td>-0.723038</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>relative_return</th>\n",
       "      <td>0.083015</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>relative_volatility</th>\n",
       "      <td>-0.100858</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>relative_drawdown</th>\n",
       "      <td>0.361633</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>info_ratio</th>\n",
       "      <td>0.259523</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>trade_count</th>\n",
       "      <td>45.000000</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>win_count</th>\n",
       "      <td>30.000000</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>win_ratio</th>\n",
       "      <td>0.666700</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     algorithm_cum  benchmark\n",
       "annual_return             0.202006   0.118991\n",
       "return_volatility         0.173631   0.274489\n",
       "sharpe_ratio              0.072269   0.034491\n",
       "max_drawdown             -0.361405  -0.723038\n",
       "relative_return           0.083015   0.000000\n",
       "relative_volatility      -0.100858   0.000000\n",
       "relative_drawdown         0.361633   0.000000\n",
       "info_ratio                0.259523        NaN\n",
       "trade_count              45.000000        NaN\n",
       "win_count                30.000000        NaN\n",
       "win_ratio                 0.666700        NaN"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "分年度风险指标\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>annual_return</th>\n",
       "      <th>return_volatility</th>\n",
       "      <th>sharpe_ratio</th>\n",
       "      <th>max_drawdown</th>\n",
       "      <th>relative_return</th>\n",
       "      <th>relative_volatility</th>\n",
       "      <th>relative_drawdown</th>\n",
       "      <th>info_ratio</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2005</th>\n",
       "      <td>0.061052</td>\n",
       "      <td>0.082337</td>\n",
       "      <td>0.047920</td>\n",
       "      <td>-0.055167</td>\n",
       "      <td>-0.121191</td>\n",
       "      <td>-0.127314</td>\n",
       "      <td>0.062737</td>\n",
       "      <td>-0.531633</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2006</th>\n",
       "      <td>1.131128</td>\n",
       "      <td>0.190871</td>\n",
       "      <td>0.256075</td>\n",
       "      <td>-0.085010</td>\n",
       "      <td>-0.122433</td>\n",
       "      <td>-0.031858</td>\n",
       "      <td>0.053145</td>\n",
       "      <td>-0.426543</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2007</th>\n",
       "      <td>0.734688</td>\n",
       "      <td>0.279514</td>\n",
       "      <td>0.133180</td>\n",
       "      <td>-0.157585</td>\n",
       "      <td>-0.962108</td>\n",
       "      <td>-0.089257</td>\n",
       "      <td>0.051435</td>\n",
       "      <td>-2.080338</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008</th>\n",
       "      <td>0.016182</td>\n",
       "      <td>0.162112</td>\n",
       "      <td>0.011297</td>\n",
       "      <td>-0.132929</td>\n",
       "      <td>0.688949</td>\n",
       "      <td>-0.323224</td>\n",
       "      <td>0.583082</td>\n",
       "      <td>1.356732</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2009</th>\n",
       "      <td>0.528549</td>\n",
       "      <td>0.266434</td>\n",
       "      <td>0.108801</td>\n",
       "      <td>-0.277811</td>\n",
       "      <td>-0.416067</td>\n",
       "      <td>-0.059123</td>\n",
       "      <td>-0.025169</td>\n",
       "      <td>-1.007909</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010</th>\n",
       "      <td>-0.049464</td>\n",
       "      <td>0.186906</td>\n",
       "      <td>-0.011188</td>\n",
       "      <td>-0.145255</td>\n",
       "      <td>0.070579</td>\n",
       "      <td>-0.064732</td>\n",
       "      <td>0.149744</td>\n",
       "      <td>0.229226</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011</th>\n",
       "      <td>-0.064097</td>\n",
       "      <td>0.075130</td>\n",
       "      <td>-0.053164</td>\n",
       "      <td>-0.123820</td>\n",
       "      <td>0.208810</td>\n",
       "      <td>-0.130846</td>\n",
       "      <td>0.192605</td>\n",
       "      <td>0.943417</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012</th>\n",
       "      <td>0.070434</td>\n",
       "      <td>0.125840</td>\n",
       "      <td>0.038018</td>\n",
       "      <td>-0.107459</td>\n",
       "      <td>-0.031325</td>\n",
       "      <td>-0.077883</td>\n",
       "      <td>0.116595</td>\n",
       "      <td>-0.130901</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013</th>\n",
       "      <td>-0.130172</td>\n",
       "      <td>0.172265</td>\n",
       "      <td>-0.045582</td>\n",
       "      <td>-0.218257</td>\n",
       "      <td>-0.048502</td>\n",
       "      <td>-0.050407</td>\n",
       "      <td>0.003337</td>\n",
       "      <td>-0.173791</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014</th>\n",
       "      <td>0.791854</td>\n",
       "      <td>0.164097</td>\n",
       "      <td>0.229269</td>\n",
       "      <td>-0.048342</td>\n",
       "      <td>0.248905</td>\n",
       "      <td>-0.028772</td>\n",
       "      <td>0.048853</td>\n",
       "      <td>0.994926</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015</th>\n",
       "      <td>0.049388</td>\n",
       "      <td>0.237983</td>\n",
       "      <td>0.020339</td>\n",
       "      <td>-0.191333</td>\n",
       "      <td>0.023899</td>\n",
       "      <td>-0.155894</td>\n",
       "      <td>0.243513</td>\n",
       "      <td>0.053391</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016</th>\n",
       "      <td>0.044385</td>\n",
       "      <td>0.115192</td>\n",
       "      <td>0.027363</td>\n",
       "      <td>-0.074970</td>\n",
       "      <td>0.091871</td>\n",
       "      <td>-0.095752</td>\n",
       "      <td>0.118840</td>\n",
       "      <td>0.385736</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017</th>\n",
       "      <td>0.114219</td>\n",
       "      <td>0.079202</td>\n",
       "      <td>0.088527</td>\n",
       "      <td>-0.051106</td>\n",
       "      <td>-0.100217</td>\n",
       "      <td>-0.022067</td>\n",
       "      <td>0.009570</td>\n",
       "      <td>-0.810983</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018</th>\n",
       "      <td>-0.069332</td>\n",
       "      <td>0.039074</td>\n",
       "      <td>-0.114591</td>\n",
       "      <td>-0.077696</td>\n",
       "      <td>0.203346</td>\n",
       "      <td>-0.175052</td>\n",
       "      <td>0.241078</td>\n",
       "      <td>0.932319</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019</th>\n",
       "      <td>0.367758</td>\n",
       "      <td>0.177565</td>\n",
       "      <td>0.116732</td>\n",
       "      <td>-0.126415</td>\n",
       "      <td>-0.024930</td>\n",
       "      <td>-0.021189</td>\n",
       "      <td>0.008499</td>\n",
       "      <td>-0.092366</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      annual_return     ...      info_ratio\n",
       "2005       0.061052     ...       -0.531633\n",
       "2006       1.131128     ...       -0.426543\n",
       "2007       0.734688     ...       -2.080338\n",
       "2008       0.016182     ...        1.356732\n",
       "2009       0.528549     ...       -1.007909\n",
       "2010      -0.049464     ...        0.229226\n",
       "2011      -0.064097     ...        0.943417\n",
       "2012       0.070434     ...       -0.130901\n",
       "2013      -0.130172     ...       -0.173791\n",
       "2014       0.791854     ...        0.994926\n",
       "2015       0.049388     ...        0.053391\n",
       "2016       0.044385     ...        0.385736\n",
       "2017       0.114219     ...       -0.810983\n",
       "2018      -0.069332     ...        0.932319\n",
       "2019       0.367758     ...       -0.092366\n",
       "\n",
       "[15 rows x 8 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 初始化\n",
    "bullbear = BullBearSingal(symbol,start_date,end_date,40,130)\n",
    "\n",
    "# 计算信号\n",
    "bullbear.GetSingal()\n",
    "\n",
    "# 回测\n",
    "bt = BackTest(bullbear.Data['close'],bullbear.Singal)\n",
    "\n",
    "# 净值画图\n",
    "bt.plot_algorithm_cum()\n",
    "\n",
    "# 风险指标\n",
    "bt.GetRisk"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# <font color=red>牛熊指标在行业轮动中的应用</font>\n",
    "\n",
    "“月度牛熊指标”，即将每个月的数据单 独计算出一个牛熊指标，每个月有且仅有一个牛熊指标,将各个行业指数的短期牛熊指标都进行变化率处理， 即计算本期的牛熊指标相对于上一期的变化率，并做多那些变化率相对较大行业。\n",
    "\n",
    "我们以申万一级行业为标的，研究横截面上利用月度牛熊指标变化率是否能选出表现较好 的行业，测试方法为: \n",
    "1. 观察期和持有期均设为一个月，计算出每个月所有行业指数月份内的平均换手率以及波动率，进而计算出月度牛熊指标，以及月度牛熊指标相对于上个月的环比变化率。行业轮 动研究中我们计算牛熊指标时使用的换手率为自由流通换手率。 \n",
    "2. 在每个月底，根据此月所有一级行业月度牛熊指标变化率的大小进行升序排序，取前 5 名作为多头组合在月初进行等权配置，考察其净值走势。同时取后 5 名作为空头组合等权配置进行比较。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 获取计算想关数据\n",
    "def QuerySWData(ts_code: str, start_date: str, end_date: str) -> pd.DataFrame:\n",
    "\n",
    "    daily_df = distributed_query(\n",
    "        QuerySWDailyPrice, ts_code, start_date, end_date, fields=\"\", limit=4000)\n",
    "    valuation_df = distributed_query(\n",
    "        QuerySWDailyValuation,\n",
    "        ts_code,\n",
    "        start_date,\n",
    "        end_date,\n",
    "        fields=\"\",\n",
    "        limit=4000)\n",
    "    \n",
    "    df = pd.merge(valuation_df, daily_df, on=['code', 'date'])\n",
    "    df['date'] = pd.to_datetime(df['date'])\n",
    "    return df.set_index('date')\n",
    "\n",
    "# 获取日度数据\n",
    "def QuerySWDailyPrice(ts_code: str, start_date: str, end_date: str,\n",
    "                      fields: str) -> pd.DataFrame:\n",
    "\n",
    "    start_date = parse(start_date).strftime('%Y-%m-%d')\n",
    "    end_date = parse(end_date).strftime('%Y-%m-%d')\n",
    "\n",
    "    q = query(finance.SW1_DAILY_PRICE.date, finance.SW1_DAILY_PRICE.code,\n",
    "              finance.SW1_DAILY_PRICE.close,\n",
    "              finance.SW1_DAILY_PRICE.change_pct).filter(\n",
    "                  finance.SW1_DAILY_PRICE.code == ts_code,\n",
    "                  finance.SW1_DAILY_PRICE.date >= start_date,\n",
    "                  finance.SW1_DAILY_PRICE.date <= end_date)\n",
    "\n",
    "    return finance.run_query(q)\n",
    "\n",
    "# 获取衍生数据\n",
    "def QuerySWDailyValuation(ts_code: str, start_date: str, end_date: str,\n",
    "                          fields: str) -> pd.DataFrame:\n",
    "\n",
    "    start_date = parse(start_date).strftime('%Y-%m-%d')\n",
    "    end_date = parse(end_date).strftime('%Y-%m-%d')\n",
    "\n",
    "    q = query(finance.SW1_DAILY_VALUATION.date,\n",
    "              finance.SW1_DAILY_VALUATION.code,\n",
    "              finance.SW1_DAILY_VALUATION.turnover_ratio).filter(\n",
    "                  finance.SW1_DAILY_VALUATION.code == ts_code,\n",
    "                  finance.SW1_DAILY_VALUATION.date >= start_date,\n",
    "                  finance.SW1_DAILY_VALUATION.date <= end_date)\n",
    "\n",
    "    return finance.run_query(q)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 月度熊牛指标计算\n",
    "def cal_indicator(df:pd.DataFrame)->pd.DataFrame:\n",
    "    \n",
    "    return df['turnover_ratio'].mean() / df['change_pct'].std()\n",
    "\n",
    "# 计算月度\n",
    "def cal_mret(df:pd.DataFrame)->pd.DataFrame:\n",
    "    \n",
    "    return df['close'][-1] / df['close'][0] - 1\n",
    "\n",
    "# 获取完整的行业月度收益、指标\n",
    "def GetSWindicator(start_date:str,end_date:str)->list:\n",
    "    '''\n",
    "    start_date/end_date:yyyymmdd\n",
    "    '''\n",
    "    codes = get_industries('sw_l1').index.tolist()\n",
    "    indictor_dic = {}\n",
    "    m_ret_dict = {}\n",
    "    for code in tqdm(codes,desc='下载中'):\n",
    "        df = QuerySWData(code,start_date,end_date)\n",
    "        m_ret_dict[code] = df.groupby(pd.Grouper(level='date',freq='M')).apply(cal_mret)\n",
    "        indictor_dic[code] = df.groupby(pd.Grouper(level=0,freq='M')).apply(cal_indicator)\n",
    "    return pd.concat(indictor_dic,axis=1),pd.concat(m_ret_dict,axis=1)\n",
    "\n",
    "\n",
    "# 获取策略收益\n",
    "def GetAlgorithmRet(flag:pd.DataFrame,next_ret:pd.DataFrame)->pd.DataFrame:\n",
    "    \n",
    "    return (flag * next_ret).apply(lambda x:x[x!=0].mean(),axis=1).fillna(method='ffill')\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "下载中: 100%|██████████| 34/34 [00:07<00:00,  4.41it/s]\n"
     ]
    }
   ],
   "source": [
    "indicator_df,ret = GetSWindicator('20060101','20191231')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "indicator_df = indicator_df.pct_change().iloc[1:] # 计算环比 去除前序期\n",
    "rank_indicator = indicator_df.rank(axis=1) # 每月度排名\n",
    "\n",
    "next_ret = ret.shift(-1) # 下期收益\n",
    "next_ret = next_ret.iloc[1:] # 去除前序期"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 持有筛选\n",
    "long_ = (rank_indicator <= 5) # 多头 升序前5\n",
    "\n",
    "short_ = rank_indicator.apply(lambda x:x>(max(x)-5),axis=1) # 升序 后5\n",
    "\n",
    "long_ret = GetAlgorithmRet(long_,next_ret) # 多头收益\n",
    "\n",
    "short_ret = GetAlgorithmRet(short_,next_ret) # 空头收益"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7ffab55bda58>"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1296x432 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(18,6))\n",
    "ax1 = fig.add_subplot(1,2,1)\n",
    "ax1.plot((1+(long_ret - short_ret)).cumprod(),label='多空')\n",
    "ax1.plot((1+ret.mean(axis=1)).cumprod(),label='等权申万一级行业净值',ls='--',color='black')\n",
    "plt.legend()\n",
    "\n",
    "ax2 = fig.add_subplot(1,2,2)\n",
    "ax2.plot((1+long_ret).cumprod(),label='多头')\n",
    "ax2.plot((1+short_ret).cumprod(),label='空头')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.7"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": false,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "MarkDown菜单",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
